如何从仅知道索引ArrayList,Java的对象中获取一个值?
问题描述:
我创建了一个简单游戏的玩家阵容。我需要在控制台上显示它正在播放的内容。我有一个班级“玩家”,我存储名称和分数。也是为每个玩家定义这些值的构造函数。无法弄清楚如何从ArrayList中的索引中的球员只有名称..如何从仅知道索引ArrayList,Java的对象中获取一个值?
package Øving5;
import java.util.ArrayList;
import java.util.Scanner;
public class Game {
public static void Round() {
ArrayList<Player> players = new ArrayList<Player>();
Scanner in = new Scanner(System.in);
System.out.print("Write down the number of players: ");
int numplayers = in.nextInt();
for (int i = 0; i < numplayers; i++)
players.add(new Player());
for (int i = 0; i < numplayers; i++)
theplayer = players.get(i); // Don't know what to do here..
System.out.print("It is " + toString(theplayer) + "'s turn.");
}
public static void main(String[] args) {
Round();
}
}
答
你所得到的Player
对象了ArrayList
的,所以就要求它为它的名字:
for(Player p : players) {
System.out.println(p.getName());
}
在这里,我假设你的玩家类有一个getName()
方法返回玩家的名字。
同样,你可以在一个特定的索引打印球员的名字:
所有的System.out.println(players.get(2).getName());
答
首先您不添加任何信息到您的播放器类。
对于每一个球员,你做
spillerne.add(new Player());
它只是创建一个空的类。你必须创建一个类的球员或多或少这样
class Player {
private String name;
public Player(String name) {
this.name = name;
}
public String getName() {
return this.name
}
然后你的代码变得
for (int i=0; i<numplayers; i++)
spillerne.add(new Player("Player " + i)); // Here you can also use user input. This is just an example of giving a name
for (int i=0; i<numplayers; i++)
System.out.print("Det er "+ spillerne.get(i).getName + "sin tur.");