2011-01-22 93 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