2016-12-13 1 views
1

그래서이 방법을 사용하면 배열 목록의 모든 객체를 반환해야합니다. 그러나 어떻게하면 배열리스트를 사용해야하는지 알 수 없다.배열 목록에서 일반 배열을 반환하십시오.

문제는 하나의 return 문에서 전달해야하는 개체의 수를 알 수없는 것입니다. 그래서 나는 현재 그것들을 테이블이라는 배열 목록에 저장했습니다. 그래서 나는 가지 붙어있어

public GuestTable[] GetSeatingChart(String filename) { 
    GuestTable table1 = new GuestTable(); 
    GuestTable table2 = new GuestTable(); 
    GuestTable table3 = new GuestTable(); 

    table1.AddGuestToTable(47); 
    table2.AddGuestToTable(53); 
    table3.AddGuestToTable(53); 

    tables.add(table1); 
    tables.add(table2); 
    tables.add(table3); 

    return new GuestTable[] {tables.get()}; 
} 

내 문제가 getAll() 기능이없는

return new GuesTable[] {tables.get()}; 

Arraylists에 있습니다 :

여기 내 코드입니다. 배열 목록에있는 요소의 수는 일일이 return 문에서 정적 인 것을 사용하지 않을 때마다 달라질 수 있습니다.

이 프로젝트는 최종 프로젝트를위한 프로젝트이며 저는 프로그래밍에 익숙합니다.

toArray(T[] arr); 

그래서 당신은 쉽게 사용 할 수 있습니다 :

GuestTable[] tablesArray = new GuestTable[tables.size()]; 
tables.toArray(tablesArray); 
return tablesArray; 

을 아니면 단순히 ArrayLists를 반환하는 메소드 서명을 변경할 수 있습니다

고마워요 마이크

+1

http://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html#toArray-T:A- – user2357112

+0

코드에서 반환하려는 것은 배열이 아닌 목록입니다. . arrayList 사용 방법을 확인하려면 인터넷을 확인하십시오. – denis

답변

3

ArrayList는 방법이 있습니다 :

public ArrayList<GuestTable> GetSeatingChart(String filename) { 
+0

고맙습니다. 나는 그것이 정말로 멍청한 질문이었다라고 확신한다. 그러나 지금 나는 알고있다. –

0

MouseEvent의 우수한 답변에 추가하면 최종 예를 완전히 보증해야합니다.

질문 : 왜 당신은 이미 완벽하게 좋은 ArrayList 객체를 가지고있을 때 배열을 반환하려고합니까?

필자의 겸손한 견해로는 배열이 OOP 패러다임에 맞지 않는다. 나는 자바가 가지고 놀란다. 아마도 C 프로그래머들을 몰두하는 디자이너의 또 다른 예가있을 것입니다 (?). 배열과 그 처리는 절차 코드 구성을 초대합니다.

내 조언은 전체 컬렉션 프레임 워크에 대한 설명서를 읽거나 Arraylists 등의 모든 기능을 설명하는 자습서를 찾고 배열 사용을 중단하는 것입니다. 당신은 그것을 위해 훨씬 더 나은 OOP 프로그래머가 될 것입니다 (당신의 목표라고 가정하십시오).

Java 8 Streams를 사용하게되면 왜 배열이 쓸모없는 것으로 간주되는지 알 수 있습니다.

+0

동의하지 않습니다 ... 우선 ArrayList 자체는 이름에서 알 수 있듯이 배열을 기반으로 작성되었습니다. 어떻게 작동 할 것이라고 기대합니까? 연결된 목록을 사용 하시겠습니까? 무작위 액세스에 대한 주요 성능 문제가 있습니다 (그러나 조작은 더 좋음). – Mordechai

+0

둘째, 배열 목록 자체를 반환하면 호출자가 내용을 변경할 수있는 캡슐화 위험이 제기됩니다. 일반 배열을 반환하면 원본이 안전합니다. (OP는 새로운 목록을 반환 할 수도 있습니다.) – Mordechai

+0

자바 콜렉션 API는 퍼포먼스가 중요한 또 다른 하나인데, autoboxing과 unboxing이 너무 자주 지연 될 수 있기 때문에 원시 타입에 대한 단점이있다. – Mordechai

관련 문제