首页 > 文章列表 > 在Java中有几种迭代LinkedList的方式?

在Java中有几种迭代LinkedList的方式?

迭代 方式 linkedlist
315 2023-09-03

一个LinkedList是一种数据结构,它包含一组以指针连接的节点,按顺序排列。一个LinkedList可以作为一个动态数组,它在自己的内存块中为每个元素分配独立的空间,这个内存块称为Node。每个节点包含两个字段,一个“data”字段用于存储列表所持有的元素类型,一个“next”字段是一个指针,用于将一个节点链接到下一个节点

我们可以用三种方式在Java中遍历LinkedList的元素。

使用Iterator

我们可以通过Iterator类遍历LinkedList的元素。

示例

import java.util.*;
public class LinkedListIteratorTest {
   public static void main(String[] args) {
      List<String> list = new LinkedList<>();
      list.add("Kohli");
      list.add("Morgan");
      list.add("Williamson");
      list.add("Smith");
      list.add("Kohli");
      Iterator it = list.iterator();
      while(it.hasNext()) {
         System.out.println(it.next());
      }
   }
}

输出

Kohli
Morgan
Williamson
Smith
Kohli

使用ListIterator

我们可以通过迭代LinkedList的元素ListIterator 类。

示例

import java.util.*;
public class LinkedListWithListIteratorTest {
   public static void main(String[] args) {
      List<String> list = new LinkedList<>();
      list.add("Kohli");
      list.add("Morgan");
      list.add("Williamson");
      list.add("Smith");
      list.add("Kohli");
      ListIterator<String> li = list.listIterator();
      while(li.hasNext()) {
         System.out.println(li.next());
      }
   }
}

输出

Kohli
Morgan
Williamson
Smith
Kohli

唱 For-each 循环

我们还可以迭代 LinkedList 的元素通过for-each循环

示例

import java.util.*;
public class LinkedListForEachTest {
   public static void main(String[] args) {
      List<String> list = new LinkedList<>();
      list.add("Kohli");
      list.add("Morgan");
      list.add("Williamson");
      list.add("Smith");
      list.add("Kohli");
      for(String str : list) {
         System.out.println(str);
      }
   }
}

输出

Kohli
Morgan
Williamson
Smith
Kohli