如果我在 java 中的链表上使用 for-each 循环, 是否保证我会按顺序迭代元素 它们出现在列表中的哪个位置?
最佳答案
我发现了 5 种在 Java 中迭代链表的主要方法(包括 Java 8 方式):
- For 循环
- 增强的 For 循环
- While 循环
- 迭代器
- 集合的 stream() 工具 (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<String> iterator = linkedList.iterator();
while (iterator.hasNext()) {
System.out.println(iterator.next());
}
收集流()实用程序(Java 8)
linkedList.forEach((temp) -> {
System.out.println(temp);
});
需要指出一点,For Loop或While Loop的运行时间是O(n square),因为get(i)
操作需要 O(n) 时间(see this for details)。其他 3 种方式需要线性时间并且性能更好。
关于java - 迭代一个链表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4767615/