我想製作一個Java遊戲。起初該程序要求玩家人數;之後,它要求提供他們的名字。我把他們的名字放在HashMap
的ID和他們的分數上。在比賽結束時,我計算得分,我想把它放在HashMap
(具體名稱的具體分數)。有誰知道如何做到這一點?這是我的代碼:如何迭代Hashmap中的元素?
球員:
public class Player {
public Player() {
}
public void setScore(int score) {
this.score = score;
}
public void setName(String name) {
this.name = name;
}
private String name;
private int score;
public Player(String name, int score) {
this.name = name;
this.score = score;
}
public String getName() {
return name;
}
@Override
public String toString() {
return "Player{" + "name=" + name + "score=" + score + '}';
}
public int getScore() {
return score;
}
主:
Scanner scanner = new Scanner(System.in);
HashMap<Integer,Player> name= new HashMap<Integer,Player>();
System.out.printf("Give the number of the players ");
int number_of_players = scanner.nextInt();
for(int k=1;k<=number_of_players;k++)
{
System.out.printf("Give the name of player %d: ",k);
name_of_players= scanner.nextLine();
name.put(k, new Player(name_of_players,0));//k=id and 0=score
}
//This for finally returns the score and
for(int k=1;k<=number_of_players;k++)
{
Player name1 = name.get(k);
System.out.print("Name of player in this round:"+name1.getName());
..............
.............
int score=p.getScore();
name.put(k,new Player(name1.getName(),scr));//I think here is the problem
for(int n=1;n<=number_of_players;n++)//prints all the players with their score
{
System.out.print("The player"+name1.getName()+" has "+name1.getScore()+"points");
}
有誰知道我怎樣才能最後打印例如:
"The player Nick has 10 points.
The player Mary has 0 points."
更新:
我這樣做是在main(如Jigar喬希建議)
name.put(k,new Player(name1.getName(),scr));
Set<Map.Entry<Integer, Player>> set = name.entrySet();
for (Map.Entry<Integer, Player> me : set)
{
System.out.println("Score :"+me.getValue().getScore() +" Name:"+me.getValue().getName());
}
,並打印「得分:0名稱:一個分數:4名:一個」當我把球員兩個名字「A」和「b」。我認爲這個問題是在這裏
name.put(k,new Player(name1.getName(),scr));
我怎樣才能把名字在我以前for
的「names_of_players」?
+1:或entrySet();; – 2011-12-27 11:35:50
如果你需要key和value兩個參數,entrySet()是合理的。你也可以直接遍歷值(或鍵)。 – viktor 2011-12-27 11:39:07
@viktor好點。增強的答案 – 2011-12-27 11:44:11