Java 如何从HashMap获取玩家列表
我为Java初学者找到了一个任务。这是一个我必须实现的接口。 我决定对玩家使用HashMap,但现在我注意到我必须返回一个玩家数组,对吗? 请您帮助我理解如何在getAllPlayer()方法中实现这一点,好吗? 多谢各位Java 如何从HashMap获取玩家列表,java,dictionary,hashmap,Java,Dictionary,Hashmap,我为Java初学者找到了一个任务。这是一个我必须实现的接口。 我决定对玩家使用HashMap,但现在我注意到我必须返回一个玩家数组,对吗? 请您帮助我理解如何在getAllPlayer()方法中实现这一点,好吗? 多谢各位 public class LeagueManager implements Manager{ Map<String, Player> players = new HashMap<String, Player>(); public void addPla
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);
}
}}
公共类LeagueManager实现管理器{
Map players=newhashmap();
公共无效添加玩家(玩家){
player.put(player.getNick(),player);
}
public void removePlayer(玩家){
如果(!players.isEmpty()){
移除(player.getNick());
}
}
公共播放器getPlayer(字符串名称){
如果(!players.isEmpty()&&players.containsKey(名称)){
返回(玩家)玩家。获取(姓名);
}否则{
System.out.println(“错误:没有带尼克的玩家”+名字);
返回null;
}
}
公共播放器[]GetAllPlayer(){
如果(!players.isEmpty()){
返回null;
}否则{
返回null;
}
}
public void addPoints(字符串名称,int points){
if(玩家姓名){
Player pl=(Player)players.get(name);
pl.设定点(点);
}
}}
您可以使用players.values().toArray以数组形式获取值
public Player[] getAllPlayers() {
Player[] result = new Player[players.size()];
return players.values().toArray(result);
}
使用以下命令:
public class LeagueManager {
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 players.values().toArray(new Player[players.size()]);
} else {
return null;
}
}
public void addPoints (String name, int points) {
if (players.containsKey(name)) {
Player pl = (Player) players.get(name);
pl.setPoints(points);
}
}
}
public class联赛经理{
Map players=newhashmap();
公共无效添加玩家(玩家){
player.put(player.getNick(),player);
}
public void removePlayer(玩家){
如果(!players.isEmpty()){
移除(player.getNick());
}
}
公共播放器getPlayer(字符串名称){
如果(!players.isEmpty()&&players.containsKey(名称)){
返回(玩家)玩家。获取(姓名);
}否则{
System.out.println(“错误:没有带尼克的玩家”+名字);
返回null;
}
}
公共播放器[]GetAllPlayer(){
如果(!players.isEmpty()){
返回players.values().toArray(新玩家[players.size()]);
}否则{
返回null;
}
}
public void addPoints(字符串名称,int points){
if(玩家姓名){
Player pl=(Player)players.get(name);
pl.设定点(点);
}
}
}
它返回一个与hashMap大小相关的播放器数组。replicate of您不需要在调用remove(…)或containsKey(…)或get(…)之前检查集合是否为空。在null不是相关值的映射上,调用containsKey(…)然后调用get(…)也是一种资源浪费,您只需获取(…)并检查结果是否不是null。