2014-10-30 79 views
2

我這裏有一個ArrayList:打印出一個ArrayList

public static void main(String[] args) { 
    Person P1 = new Person("Nathen", 144.5, 55.1); 
    Person P2 = new Person("Jamie", 133, 60); 
    Person P3 = new Person("Tom", 134, 65); 
    Person P4 = new Person("Lavi", 170, 70); 

    ArrayList<String> Person = new ArrayList<String>();{ 
     Person.add(P1.getCategory()); 
     Person.add(P2.getCategory()); 
     Person.add(P3.getCategory()); 
     Person.add(P4.getCategory()); 
    } 

    System.out.println(Person); 
} 

我怎樣才能讓程序在同一時間,而不是一個大排我現在已經打印出來的Arraylist一行。

+3

你讀過有關循環?是什麼谷歌告訴你... – vikingsteve 2014-10-30 16:56:36

+0

我也從具有相同的名稱和情況作爲類名稱的變量避免。至少,這個名字不會使感很大 - 集體名詞是「人」。 – JonK 2014-10-30 17:00:11

+2

@JonK並且由於它實際上是一個類別列表,它應該被命名爲'categories'。 – 2014-10-30 17:01:21

回答

5

使用for-each循環

for(String str : Person){ 
    System.out.println(str); 
} 
+0

這樣翔實的答案這的確值得+1多次。大聲笑 – 2014-10-30 17:30:15

+0

這工作謝謝! – 2014-10-30 19:15:20

0

首先,你應該遵循Java naming convention,因此,你應該改變變量Personperson,或一個更好的名字,因爲它就像categories類的列表。

其次,來到你的要求,部分是通過每個項目的選擇循環,你有2個其他的方式來打印的person列表出來。

  • 可以通過使person列表的對應陣列使用Arrays.toString方法。這是你可以寫:

    System.out.println(Arrays.toString(person.toArray()));

    輸出:[Nathen, Jamie, Tom, Lavi]

  • 如果您正在使用/移動到Java 8+,您可以使用流。這是如何可以實現它:

    person.stream().forEach(System.out::println);

    輸出:

    Nathen Jamie Tom Lavi