2011-06-05 60 views
3

你好,我試圖創建一個for循環,通過鏈表循環。對於每一條數據,它將單獨列出。我想在這裏學習鏈表,所以沒有數組建議。有人知道怎麼做嗎?JAVA鏈表如何使用for循環循環?

示例輸出:

  1. 航班187
  2. 航班501

CODE我到目前爲止BELOW:

public static LinkedList<String> Flights = new LinkedList<String>(); 

public flightinfo(){ 
String[] flightNum = {"187", "501"}; 
     for (String x : flightNum) 
     Flights.add(x); 

       for (???) 


} 
+0

爲什麼你遍歷鏈表?我很困惑你正在嘗試做什麼。現在,您有一個LinkedList和一個字符串數組,並且您正在迭代該字符串數組以將它們添加到LinkedList。我不明白你的最終目標是什麼。 – 2011-06-05 20:52:45

回答

15

只需使用增強的for循環,與使用數組的方式相同:

for(String flight : flights) { 
    // do what you like with it 
} 
1
for(String y : Flights) { 
//... 
} 

同樣的方式排列的,因爲它繼承Iterable<T>

正如@Cold夏威夷指出,這僅適用於對Java> = 5.0

如果前5.0用途:

ListIterator<String> iter = Flights.iterator(); 
while(iter.hasNext()) { 
    String next = iter.next(); 
    // use next 
} 
+0

這工作我複製第一個循環這是我的錯誤,因爲它沒有教我任何東西。現在我明白了!謝謝 – allencoded 2011-06-05 21:01:26

1

您應該使用ListIterator(請參閱Java API以獲取更多信息)。

6

如果我理解正確的話,你必須去列表的迭代參考,使用可循環的數據:

ListIterator iterator = Flights.iterator(); 
while (iterator.hasNext()){ 
    System.out.print(iterator.next()+" "); 
} 
0

如果你在鏈表不同的值,這會工作:

for(Iterator<String> i = Flights.listIterator(); i.hasNext();){ 
    String temp = i.next(); 
    System.out.println(Flights.indexOf(temp)+1+". Flight "+temp); 
} 

如果你沒有在鏈表不同的值,這會工作:

int i=0; 
for(Iterator<String> iter = Flights.listIterator(); iter.hasNext();i++){ 
    String temp = iter.next(); 
    System.out.println(i+1+". Flight "+temp); 
} 

希望這有助於。

-2
while(!flights.isEmptry) { 
    System.out.println(flights.removeFirst()); 
} 
0

與實現Iterable的Java8集合類有的forEach()方法。隨着的forEach()和lambda表達式,你可以很容易地遍歷LinkedList的

flights.forEach(flight -> System.out.println(flight));