Задать вопрос
CSmith
@CSmith
Студент.

Как возвратить список игроков из hashMap?

Всем привет,
Есть, значит, у меня класс LeagueManager. В нём существует "карта" игроков HashMap. В роли ключа выступает ник игрока(String), в роли значения - сам игрок(Player).
Вопрос написан в топике, но продублирую: Как возвратить список игроков из hashMap? (проблема в методе getAllPlayers())

import java.util.HashMap;
import java.util.Map;

public class LeagueManager implements Manager{
Map players = new HashMap();
public void addPlayer(Player player) {
players.put(player.getNick(), player);
}

public void removePlayer(Player player) {
if (!players.isEmpty()) {
players.remove(player.getNick());
}
}

public Player getPlayer(String name) {
if (!players.isEmpty() && players.containsKey(name)) {
return (Player) players.get(name);
} else {
System.out.println("Error: there is no player with nick " + name);
return null;
}
}

public Player[] getAllPlayers() {
if (!players.isEmpty()) {
return null;
} else {
return null;
}
}
  • Вопрос задан
  • 209 просмотров
Подписаться 1 Оценить Комментировать
Решения вопроса 1
CSmith
@CSmith Автор вопроса
Студент.
На забугорском ресурсе тоже нашлись герои и предложили такой вариант:
public Player[] getAllPlayers() {
Player[] result = new Player[players.size()];
return players.values().toArray(result);
}

Вот он у меня рабочий. Но всем спасибо, что не прошли мимо!
З.Ы. Как я понял, тут избегают изменение типа, тем самым отсекая ошибку, которая вываливалась мне при использовании решения от EugeneP2
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
EugeneP2
@EugeneP2
Java Dev
public Player[] getAllPlayers() {
      return  (Player[])players.values().toArray();
}


Interface Map

И не забываем про дженерики
Ответ написан
@bromzh
Drugs-driven development
Дженерики для кого придумали?
Map<String, Player> players = new HashMap<>();
...
public List<Player> getAllPlayers() {
return players.values();
}


Пиши нормальный код. Изучи коллекции и дженерики в яве, это же основа.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы