2015-07-20 3 views
-2

Допустим, у нас есть картаКак вернуть значение HashMap

private Map<TeamType, Player> teamPlayers = new HashMap<>(); 

и инициализируем их

teamPlayers.put(TeamType.ONE, new ArrayList<Player>()); 
teamPlayers.put(TeamType.TWO, new ArrayList<Player>()); 

и мы храним некоторые значения в них

teamPlayers.get(TeamType.ONE).add(player); 
teamPlayers.get(TeamType.TWO).add(player); 

является есть способ вернуть количество игроков в обеих командах, кроме того, что делает

int totalPlayers = teamPlayers.get(TeamType.ONE).size() + teamPlayers.get(TeamType.Two).size(); 

потому что это может стать очень загроможденным после того, как более 4 команд. Имейте в виду, что TeamType - это перечисление.

+0

Скажем, у меня есть 4 полки. Первая полка поддерживает 1 книгу, вторая полка поддерживает 3 книги, третья полка поддерживает 5 книг, а четвертая полка поддерживает 2 книги. Как вы могли бы подсчитать общее количество поддерживаемых книг на всех полках? –

+0

Итак, у вас есть карта, подобная этой «Map », а затем значение имеет список типов? Это работает для вас? – Tom

ответ

1
int total =teamPlayers.get(TeamType.TEAM_ONE).size() + teamPlayers.get(TeamType.TEAM_TWO).size() 

должно работать. Вместо того, чтобы ссылаться на свой старый пост, вы можете опубликовать свой текущий код? трудно узнать, какие изменения вы внесли и какие предложения вы взяли с последнего поста.

обновленный ответ на переборе каждой записи в вашем TeamType перечислении:

int total = 0; 
for(TeamType type : TeamType.values()){ 
    total += teamPlayers.get(type).size(); 
} 

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

+0

teamPlayers.get (TeamType.TEAM_ONE) вернет Игроку, и имеет смысл, что вы не сможете назвать size() на игроке – Kode

+0

, он ссылается на свое последнее сообщение, которое дает принятый ответ, чтобы использовать список игроков вместо только один игрок, который является частью причины, по которой я попросил его опубликовать свой текущий код. Трудно сказать, что делает OP без какого-либо кода. – GregH

+0

@peggy Извините, ребята. Не видел этого !! – Kode

Смежные вопросы