두 개의 배열 목록이 있습니다. 하나는 팀을위한 것이고 다른 하나는 선수를위한 것입니다. 선수들을위한 arraylist는 팀 클래스에 속하며 각 팀이 선수를 추가 할 수 있도록 성공적으로 관리했습니다.Java Arraylist 모든 요소 나열
하지만 내가 궁금해하는 점은 컬렉션과 상관없이 모든 플레이어에게 보여주기 위해 컬렉션을 반복하는 가장 좋은 방법은 무엇일까요? 그게 가능한가?
두 개의 배열 목록이 있습니다. 하나는 팀을위한 것이고 다른 하나는 선수를위한 것입니다. 선수들을위한 arraylist는 팀 클래스에 속하며 각 팀이 선수를 추가 할 수 있도록 성공적으로 관리했습니다.Java Arraylist 모든 요소 나열
하지만 내가 궁금해하는 점은 컬렉션과 상관없이 모든 플레이어에게 보여주기 위해 컬렉션을 반복하는 가장 좋은 방법은 무엇일까요? 그게 가능한가?
모든 플레이어에 대한 참조가 포함 된 다른 구조를 만들어야합니다. 예를 들어, 모든 플레이어에 대해 다른 컬렉션을 가질 수 있으며, 생성 될 때마다 해당 컬렉션에 새로운 플레이어를 추가해야합니다. Set
에는 속임수를 허용하지 않는 것과 같은 바람직한 의미가 있으므로 사용자에게 적합 할 수 있습니다. 모든 플레이어를 통해 반복 모든 팀을 통해
하거나 루프는 ...
관계없이 컬렉션 프레임 워크 내에서있는 콜렉션의 모든 선수 통해 루프를 말할 수있는 방법이 없습니다.
대신 Map<String,List<String>>
을 사용해야합니다. 여기서 key는 팀 이름이고 value는 해당 팀의 선수 목록입니다. 그렇게하면이지도의 모든 값 (map.values()
사용)을 얻을 수 있고 반복하여 팀에 관계없이 모든 플레이어의 목록을 얻을 수 있습니다.
당신은 모든 선수들과 새로운 목록을 만들 수 있습니다
List<Player> allp = new ArrayList<Player>();
for(Team t : teams) allp.addAll(t.getPlayers());
A ['Set'] (http://download.oracle.com/javase/6/docs를 /api/java/util/Set.html)는 "다른 구조"의 좋은 후보로 보입니다. –
@ted, 예, 편집 중이었습니다.) – hvgotcodes
고마워요. 모든 팀과 선수를 반복하는 것은 어떨까요? 이 일을하기 위해 중첩 된 루프를 가정하고 있습니까? – mjsey