java - 迭代链表
2022-09-01 11:10:05
如果我在java中的链接列表上使用for-each循环,是否可以保证我将按照元素在列表中出现的顺序迭代它们?
如果我在java中的链接列表上使用for-each循环,是否可以保证我将按照元素在列表中出现的顺序迭代它们?
我发现了5种在Java中迭代链表的主要方法(包括Java 8方式):
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 (String temp : linkedList) {
System.out.println(temp);
}
同时循环
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());
}
collection stream() util (Java 8)
linkedList.forEach((temp) -> {
System.out.println(temp);
});
应该指出的一件事是,For Loop或While Loop的运行时间是O(n平方),因为操作需要O(n)时间(有关详细信息,请参阅此处)。其他 3 种方式采用线性时间,性能更好。get(i)