2014-05-02 16 views
0

我正在尝试输出所有clubs的列表并且让people显示在其下的club列表中显示为最困难的时间代替每个club代替people。我知道问题出在嵌套的for循环中,因为当它到达第二个for循环时,它会用新的索引值转到personArray并打印出所有的人。我如何得到它,以便它仅打印clubArray[0]的内容,然后对于clubArray[1]它将拾取它在personArray中停留的位置,并打印clubArray[1]'s人?使用toString(java)打印出存储在不同阵列中的对象内的对象

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

    } 
} 
+0

对不起,我的意思是说,对于每个俱乐部来说,它显示每个人都在该人阵列中,而不是仅显示那些属于该俱乐部的人 – user3596343

+0

你Person []是静态的,所以它被所有俱乐部共享。我不明白你是如何区分哪个人属于哪个俱乐部的。你有没有考虑在Person类中添加clubName属性并将其设置为合适的俱乐部名称? – akhilless

+0

也许你可以告诉我们你是如何进入俱乐部的名单或人员的。 – user1803551

回答

1

ClubpersonArray声明static,这意味着只有一个人阵,而不是为每个俱乐部,这是你可能想要的东西(每家具乐部在全体人民的数组俱乐部)。

俱乐部有一个List<Person>几乎肯定会更好,因为这个名单可以随着人们被添加到俱乐部而增长,而不是固定的大小为200(除非你知道每个俱乐部都会一直有200人)。

+0

为每个俱乐部获得1人阵列的最佳方式是什么? – user3596343

+0

从数组声明中除去'static'修饰符。 –