Java Arraylist, перечисляющий все элементы - PullRequest
0 голосов
/ 22 ноября 2011

У меня есть два списка массивов, один для команд и один для игроков.Массив для игроков находится в классе команд, и мне удалось получить его, чтобы в каждую команду можно было добавлять игроков.

Но меня интересует, каков наилучший способ перебораколлекцию, чтобы показать всем игрокам, независимо от того, с какими командами они тоже связаны?Это вообще возможно?

Ответы [ 3 ]

1 голос
/ 22 ноября 2011

Вы можете создать новый список со всеми игроками:

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

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

0 голосов
/ 22 ноября 2011

Возможно, вам следует использовать вместо Map<String,List<String>>, где ключ - это название команды, а значение - список игроков в этой команде. Таким образом, вы можете получить все значения (используя map.values()) этой карты и перебрать их, чтобы получить список всех игроков независимо от команды.

0 голосов
/ 22 ноября 2011

Вы должны будете создать другую структуру, которая содержала бы ссылки на всех игроков. Например, у вас может быть другая коллекция для всех игроков, и просто добавляйте новых игроков в эту коллекцию всякий раз, когда они создаются. У Set есть желательная семантика, например, запрещение дублирования, так что это может иметь смысл для вас.

Или просто цикл по всем командам, цикл по всем игрокам ....

В структуре коллекций невозможно указать цикл между всеми игроками независимо от того, в какой коллекции они находятся.

...