Java 如何在arraylist中添加不同类型的值<;对象>;?
所以基本上我有一个Java 如何在arraylist中添加不同类型的值<;对象>;?,java,Java,所以基本上我有一个 public class Tournament { private int [] par; // stores par for each hole in the golf course. private ArrayList<Player> players; // stores the list of players. public static final int NUMHOLES = 18; // constant. 如何创建enter()方法 我试过了
public class Tournament {
private int [] par; // stores par for each hole in the golf course.
private ArrayList<Player> players; // stores the list of players.
public static final int NUMHOLES = 18; // constant.
如何创建enter()方法
我试过了
//players.add(aName); players.add(aHandicap);
//players.addAll(aName, aHandicap));
没有骰子。感谢您的帮助您正在尝试向玩家列表中添加字符串和数字
您需要先创建一个播放器,然后将该播放器添加到列表中。它不会自动为你创建一个玩家,仅仅因为你把构建一个玩家所需的碎片交给它 您正在尝试向玩家列表中添加字符串和数字
您需要先创建一个播放器,然后将该播放器添加到列表中。它不会自动为你创建一个玩家,仅仅因为你把构建一个玩家所需的碎片交给它 你的抽象概念是错误的。他的名字和残疾是该球员的财产。它不是列表的属性 因此,将字段添加到Player类中,然后直接在构造函数中初始化它们,或者提供setter方法。从概念上讲,名称可能应该通过构造函数输入-因为名称应该是不可变的,并且在创建播放器后不会更改。而障碍可能会改变;因此,有一个setter方法将是更好的选择 然后,您可以迭代您的Player对象列表,并在Player对象(而不是列表)上调用这些setter方法 换句话说:你的类/对象是现实的模型。因此,您的玩家类应该代表“人类玩家”的那些方面,这些方面在您的模型的更大上下文中是有意义的 即使您认为您的玩家类不应该知道这些事情,您仍然创建了一个抽象,比如:
public class EnhancedPlayer { // could extend Player
that has those other fields
你看,你的问题会变成:让我们表示几个属于一起的信息。。。把他们放在不同的名单上;一个“共同”的索引意味着:东西属于一起
最后,直截了当的回答是:你不能那样做;你不应该那样做。当你有一个
列表时,你只能将玩家对象添加到该列表中 你的抽象概念是错误的。他的名字和残疾是该球员的财产。它不是列表的属性
因此,将字段添加到Player类中,然后直接在构造函数中初始化它们,或者提供setter方法。从概念上讲,名称可能应该通过构造函数输入-因为名称应该是不可变的,并且在创建播放器后不会更改。而障碍可能会改变;因此,有一个setter方法将是更好的选择
然后,您可以迭代您的Player对象列表,并在Player对象(而不是列表)上调用这些setter方法
换句话说:你的类/对象是现实的模型。因此,您的玩家类应该代表“人类玩家”的那些方面,这些方面在您的模型的更大上下文中是有意义的
即使您认为您的玩家类不应该知道这些事情,您仍然创建了一个抽象,比如:
public class EnhancedPlayer { // could extend Player
that has those other fields
你看,你的问题会变成:让我们表示几个属于一起的信息。。。把他们放在不同的名单上;一个“共同”的索引意味着:东西属于一起
最后,直截了当的回答是:你不能那样做;你不应该那样做。当你有一个列表时,你只能将玩家对象添加到该列表中 一个玩家的姓名
和障碍
是其身份的一部分,因此它们应该是该类玩家的两个字段
,因此:
假设您的类Player
看起来像:
public class Player {
private String name;
private int handicap;
public Player(final String name, final int handicap) {
this.name = name;
this.handicap = handicap;
}
// Getters (and setters if needed)
}
那么您的方法enter
将是:
public void enter(String aName, int aHandicap) {
players.add(new Player(aName, aName));
}
玩家的姓名
和障碍
是其身份的一部分,因此它们应该是类玩家
的两个字段,因此:
假设您的类Player
看起来像:
public class Player {
private String name;
private int handicap;
public Player(final String name, final int handicap) {
this.name = name;
this.handicap = handicap;
}
// Getters (and setters if needed)
}
那么您的方法enter
将是:
public void enter(String aName, int aHandicap) {
players.add(new Player(aName, aName));
}
也许您正在寻找玩家。添加(新玩家(aName,aHandicap))
@Eran I was,thanks@Paul我已经得到了我的答案,但我还是会读的,thanks@RobBor请注意:我想你不会再看到太多的更新了。请考虑接受对你最有帮助的答案。也许你正在寻找<代码>玩家。添加(新玩家(AnEnter,Apple Apple))< /代码>thanks@Paul我已经得到了我的答案,但我还是会读的,thanks@RobBor请注意:我想你不会再看到太多的更新了。请考虑接受对你最有帮助的答案。如果我能吻你,我会的。谢谢!如果我能吻你,我会的。谢谢!