2011-01-22 85 views
15

如果我在java中使用for-each循環, 是否可以保證我將按照 的順序迭代它們出現在列表中的元素?Java - 迭代鏈表

+3

**是**是.. – 2011-01-22 11:53:56

回答

9

鏈接列表保證按順序執行。

documentation

有序集合(也稱爲 序列)。此接口 的用戶可精確控制每個元素插入的 列表中的哪個位置。 用戶可以通過它們的 整數索引(列表中的位置), 訪問元素,並搜索列表中的元素。

iterator() 以正確的順序返回此列表中元素的迭代器。

7

正如Linkedlist的定義所說,它是一個序列,您可以保證按順序獲取元素。

如:

import java.util.LinkedList; 

public class ForEachDemonstrater { 
    public static void main(String args[]) { 
    LinkedList<Character> pl = new LinkedList<Character>(); 
    pl.add('j'); 
    pl.add('a'); 
    pl.add('v'); 
    pl.add('a'); 
    for (char s : pl) 
     System.out.print(s+"->"); 
    } 
} 
18

我發現了5點主要的方式來遍歷在Java中鏈表(包括Java 8路):

  1. For循環
  2. 增強了Loop
  3. While Loop
  4. 迭代
  5. 收藏的流()UTIL(Java8)

For循環

LinkedList<String> linkedList = new LinkedList<>(); 
     System.out.println("==> For Loop Example."); 
     for (int i = 0; i < linkedList.size(); i++) { 
      System.out.println(linkedList.get(i)); 
     } 

增強的for循環

for (String temp : linkedList) { 
      System.out.println(temp); 
     } 

While循環

int i = 0; 
     while (i < linkedList.size()) { 
      System.out.println(linkedList.get(i)); 
      i++; 
     } 

迭代

Iterator Iterator = linkedList.iterator(); 
     while (Iterator.hasNext()) { 
      System.out.println(Iterator.next()); 
      } 

集流()UTIL(Java的8)

linkedList.forEach((temp) -> { 
      System.out.println(temp); 
     }); 
+0

太好了。我不知道LinkedList.size()。 +1。 – roottraveller 2017-07-20 10:09:34