2011-11-22 3 views
0

두 개의 배열 목록이 있습니다. 하나는 팀을위한 것이고 다른 하나는 선수를위한 것입니다. 선수들을위한 arraylist는 팀 클래스에 속하며 각 팀이 선수를 추가 할 수 있도록 성공적으로 관리했습니다.Java Arraylist 모든 요소 나열

하지만 내가 궁금해하는 점은 컬렉션과 상관없이 모든 플레이어에게 보여주기 위해 컬렉션을 반복하는 가장 좋은 방법은 무엇일까요? 그게 가능한가?

답변

0

모든 플레이어에 대한 참조가 포함 된 다른 구조를 만들어야합니다. 예를 들어, 모든 플레이어에 대해 다른 컬렉션을 가질 수 있으며, 생성 될 때마다 해당 컬렉션에 새로운 플레이어를 추가해야합니다. Set에는 속임수를 허용하지 않는 것과 같은 바람직한 의미가 있으므로 사용자에게 적합 할 수 있습니다. 모든 플레이어를 통해 반복 모든 팀을 통해

하거나 루프는 ...

관계없이 컬렉션 프레임 워크 내에서있는 콜렉션의 모든 선수 통해 루프를 말할 수있는 방법이 없습니다.

+0

A ['Set'] (http://download.oracle.com/javase/6/docs를 /api/java/util/Set.html)는 "다른 구조"의 좋은 후보로 보입니다. –

+0

@ted, 예, 편집 중이었습니다.) – hvgotcodes

+0

고마워요. 모든 팀과 선수를 반복하는 것은 어떨까요? 이 일을하기 위해 중첩 된 루프를 가정하고 있습니까? – mjsey

0

대신 Map<String,List<String>>을 사용해야합니다. 여기서 key는 팀 이름이고 value는 해당 팀의 선수 목록입니다. 그렇게하면이지도의 모든 값 (map.values() 사용)을 얻을 수 있고 반복하여 팀에 관계없이 모든 플레이어의 목록을 얻을 수 있습니다.

1

당신은 모든 선수들과 새로운 목록을 만들 수 있습니다

List<Player> allp = new ArrayList<Player>();

for(Team t : teams) allp.addAll(t.getPlayers());