我在尝试输出所有 clubs
的列表时遇到了最困难的时刻并有people
谁在里面club
显示在它下面,但它显示所有 people
对于每个 club
反而。我知道问题出在嵌套的 for
中循环,因为当它到达第二个 for
时循环,它会转到 personArray
具有新的索引值并打印出所有人员。我如何获得它,以便它只打印 clubArray[0]
的内容,然后为clubArray[1]
它将从personArray
中停止的地方继续。并打印clubArray[1]'s
人们?
public class app {
public static Club[] clubArray = new Club[5];
public static int clubCount=0;
public static int personCount=0;
public static void main(String[] args) {
//inside a add method
//prompt user for club
clubArray[clubCount++] = new Club(clubName);
//prompt user for name, then prompt for Male or Female
if (x.equals("M")) {
Male newPerson = new Male(name);
clubArray[clubCount-1].addPerson(newPerson,personCount);
personCount++;
}
// .. in a print method
for(int x = 0; x < clubArray.length; x++) {
display+= clubArray[x].getClubName();
for(int y = 0; y < personCount; y++) {
display += clubArray[x].toString();
}
}
}
//--------------------------------
//data definition class
public class Club { //extend app?
public static Person[] personArray = new Person[200];
public void addPerson(Person newPerson, int personCount){
personArray[personCount] = newPerson;
}
public String toString() {
Person personObj = new Person();
String display= "";
return display = studentObj.getPersonName();
}
}
最佳答案
personArray
在Club
已声明static
,这意味着只有一个人数组,而不是每个俱乐部一个,这可能是您想要的(每个俱乐部都有一个包含该俱乐部中所有人员的数组)。
让俱乐部拥有 List<Person>
几乎肯定会更好这样列表就可以随着俱乐部人数的增加而增长,而不是固定大小 200 人(除非您知道每个俱乐部总是有 200 人)。
关于java - 使用 toString (java) 打印存储在不同数组中的对象内的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23432881/