【发布时间】:2015-09-09 16:24:06
【问题描述】:
我为 Java 初学者找到了一个任务。这是我必须实现的接口。 我决定为 Players 使用 HashMap,但现在我注意到我必须返回一个 Player 数组,对吗? 你能帮我理解如何在 getAllPlayers() 方法中做到这一点吗? 谢谢
public class LeagueManager implements Manager{
Map<String, Player> players = new HashMap<String, Player>();
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;
}
}
public void addPoints (String name, int points) {
if (players.containsKey(name)) {
Player pl = (Player) players.get(name);
pl.setPoints(points);
}
}}
【问题讨论】:
-
在调用 remove(...) 或调用 containsKey(...) 或 get(...) 之前,您无需检查集合是否为空。同样调用 containsKey(...) 然后 get(...) 会浪费 Map 上的资源,其中 null 不是相关值,您只需 get(...) 并检查结果是否不为 null。
标签: java dictionary hashmap