我是一名初级程序员,我似乎无法在我的代码中找到我的错误。
我有一个对象(人员)的数组列表,我想将索引的值保存到变量中:
public void randomCaptain(){
Random dice = new Random ();
int n = dice.nextInt(personList.size());
Person theCaptain = personList.get(n);
System.out.println(theCaptain);
}
首先,我想要一个介于 1 和我的数组列表中的人数之间的随机数。在此之后,我想要点 n 处的值,所以我的数组列表中的人 n 并将其保存到人“theCaptain”中。我用 personList.get(n) 试过这个。但是如果我通过 println 检查这个值,它会返回“null”。我检查了数组的大小等,数组不为空。所以这不是问题。
编辑
这是初始化数组的部分:
public class Team{
ArrayList<Person> personList = new ArrayList<Person>();
void init(){
//Adding persons to the list
personList.add(new Coach("Tesan de Boer", "Straatweg 45", 2222));
personList.add(new GoalKeeper("Peter Post", "Straatweg 45", 2222, 1));
personList.add(new GoalKeeper("piet puk", "Straatweg 45", 2222, 21));
personList.add(new GoalKeeper("Siem van Aanhoolt", "Straatweg 45", 2222, 31));
personList.add(new Captain("Denis van rijn", "Straatweg 45", 2222, 5));
personList.add(new Fielder("Koen Weegink", "Straatweg 45", 2222, 2));
personList.add(new Fielder("Jan-Willem Rufus op den Haar", "Straatweg 45", 2222, 3));
personList.add(new Fielder("Tom Kraniker", "Straatweg 45", 2222, 4));
personList.add(new Fielder("Leon het Kanon", "Straatweg 45", 2222, 6));
personList.add(new Fielder("Robin Hogezant", "Straatweg 45", 2222, 7));
personList.add(new Fielder("Loesoe de Kat", "Straatweg 45", 2222, 8));
personList.add(new Fielder("Morris de Spee", "Straatweg 45", 2222, 9));
personList.add(new Fielder("Rein Zoekers", "Straatweg 45", 2222, 10));
personList.add(new Fielder("Darion Pok", "Straatweg 45", 2222, 11));
personList.add(new Fielder("Achmed de Bom", "Straatweg 45", 2222, 12));
}
当我用 size() 检查这个时,它会正确返回 15。所以这应该不是问题。
主要是:
Team team= new Team();
team.init();
team.randomCaptain();
我希望你能帮助我,谢谢