Kev*_*wis -1 java arraylist println output
我正在尝试打印出我为ArrayList输入的内容,但是[player@42a57993, player@75b84c92, player@6bc7c054]当我清楚地输入合法名称时,我一直得到奇怪的结果.所以看看我的代码,看看问题可能是什么:
if (o == 5) {
double RD, t, old, x;
String tournament, player;
int a, number_of_players, place;
ArrayList<player> players = new ArrayList<player>();
System.out.println("1:Add a tournament \t2:View Existing");
a = keyIn.nextInt();
if (a == 1) {
System.out.println("\nEnter tournament name");
tournament = keyIn.next();
System.out.println("\nEnter number of players");
number_of_players = keyIn.nextInt();
System.out.println("Enter players");
for (int i = 0; i < number_of_players; i++) {
String name = keyIn.next();
player plr = new player();
plr.setName(name);
players.add(plr);
}
System.out.println("Enter places for");
System.out.println(players);
place = keyIn.nextInt();
Run Code Online (Sandbox Code Playgroud)
这是我的player班级:
public class player {
private static String name;
public void setName(String pName)
{
name = pName;
}
public String getName()
{
return name;
}
}
Run Code Online (Sandbox Code Playgroud)
让我知道你们想出了什么!谢谢!
你看到的是默认实现的输出toString.它是后面跟着的类名@和哈希码的无符号十六进制表示.
要更改它,请toString在您的Player类中实现一个方法,例如:
public class Player {
private String name;
public void setName(String pName) {
name = pName;
}
public String getName() {
return name;
}
@Override
public String toString() {
return "Player{name='" + name + "'}";
}
}
Run Code Online (Sandbox Code Playgroud)