如何从只知道索引ArrayList,Java获取对象的一个​​值?

时间:2016-04-26 13:22:58

标签: java object arraylist tostring

我为一个简单的游戏创建了一个玩家的Arraylist。我需要在控制台中显示它才能播放。我有一个班级“玩家”,我存储名称和分数。也是为每个玩家定义这些值的构造函数。无法弄清楚如何从Arraylist中的索引中仅获取玩家的名字..

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();


    }
}

2 个答案:

答案 0 :(得分:0)

您正在从Player中获取ArrayList对象,因此只需询问它的名称:

for( Player p : players) {
  System.out.println(p.getName());
}

这里我假设你的玩家类有getName()方法返回玩家的名字。

同样,您可以在特定索引处打印玩家的名字:

System.out.println(players.get(2).getName());

答案 1 :(得分:0)

首先,您不会向播放器类添加任何信息。

对于你做的每个玩家

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.");