Я нашел 5 основных способов перебора связанного списка в Java (включая способ Java 8):
- для цикла
- Улучшено для цикла
- Во время цикла
- Итератор
- Использование коллекций stream () (Java8)
Для цикла
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());
}
сбор потока () util (Java 8)
linkedList.forEach((temp) -> {
System.out.println(temp);
});
Следует отметить, что время работы для цикла или в то время как цикл равен O (n квадрат), поскольку операция get(i)
занимает время O (n) см. Подробности ). Другие 3 способа занимают линейное время и работают лучше.