Java 集合 LinkedList

来源:这里教程网 时间:2026-02-17 20:13:27 作者:

Java 中的数组类似,LinkedList是线性数据结构。但是,LinkedList元素不存储在像数组这样的连续位置中,它们使用指针相互链接。LinkedList的每个元素都具有指向LinkedList的下一个元素的引用(地址/指针)。

LinkedList表示

LinkedList中的每个元素称为节点。LinkedList的每个节点包含两个项目:1)元素的内容 2)指向链表中的下一节点的指针/地址/引用。

这就是LinkedList的样子:

从LinkedList中删除元素的 Java 示例

在下面的示例中,我们将检查LinkedList中用于从LinkedList中的某些位置删除元素的几个流行的删除方法。这些方法的详细说明以及示例将在单独的教程中介绍,本文末尾提供了链接。

package com.beginnersbook;import java.util.*;public class JavaExample{   public static void main(String args[]){      LinkedList<String> list=new LinkedList<String>();      //Adding elements to the Linked list      list.add("Steve");      list.add("Carl");      list.add("Raj");      list.add("Negan");      list.add("Rick");      //Removing First element      //Same as list.remove(0);      list.removeFirst();      //Removing Last element      list.removeLast();      //Iterating LinkedList      Iterator<String> iterator=list.iterator();      while(iterator.hasNext()){         System.out.print(iterator.next()+" ");      }      //removing 2nd element, index starts with 0      list.remove(1);      System.out.print("\nAfter removing second element: ");      //Iterating LinkedList again      Iterator<String> iterator2=list.iterator();      while(iterator2.hasNext()){         System.out.print(iterator2.next()+" ");      }   }}

输出:

Java 集合 LinkedList

Java 中的LinkedList示例

import java.util.*;public class LinkedListExample {     public static void main(String args[]) {       /* Linked List Declaration */       LinkedList<String> linkedlist = new LinkedList<String>();       /*add(String Element) is used for adding         * the elements to the linked list*/       linkedlist.add("Item1");       linkedlist.add("Item5");       linkedlist.add("Item3");       linkedlist.add("Item6");       linkedlist.add("Item2");       /*Display Linked List Content*/       System.out.println("Linked List Content: " +linkedlist);       /*Add First and Last Element*/       linkedlist.addFirst("First Item");       linkedlist.addLast("Last Item");       System.out.println("LinkedList Content after addition: " +linkedlist);       /*This is how to get and set Values*/       Object firstvar = linkedlist.get(0);       System.out.println("First element: " +firstvar);       linkedlist.set(0, "Changed first item");       Object firstvar2 = linkedlist.get(0);       System.out.println("First element after update by set method: " +firstvar2);       /*Remove first and last element*/       linkedlist.removeFirst();       linkedlist.removeLast();       System.out.println("LinkedList after deletion of first and last element: " +linkedlist);       /* Add to a Position and remove from a position*/       linkedlist.add(0, "Newly added item");       linkedlist.remove(2);       System.out.println("Final Content: " +linkedlist);      }}

输出:

Linked List Content: [Item1, Item5, Item3, Item6, Item2]LinkedList Content after addition: [First Item, Item1, Item5, Item3, Item6, Item2, Last Item]First element: First ItemFirst element after update by set method: Changed first itemLinkedList after deletion of first and last element: [Item1, Item5, Item3, Item6, Item2]Final Content: [Newly added item, Item1, Item3, Item6, Item2]

LinkedList类的方法:

这里我已经提到了LinkedList方法的简要说明,我已经在单独的教程中介绍了这些方法中的每一个,本文末尾提供了链接。

对于以下方法中的所有示例,请将llistobj视为LinkedList&lt;String&gt;的参考。

LinkedList<String> llistobj  = new LinkedList<String>();

1) boolean add(Object item):它在列表的末尾添加项目。

llistobj.add("Hello");

它会在链表的末尾添加字符串"Hello"。

2) void add(int index, Object item):它在列表的给定索引处添加一个项目。

llistobj.add(2, "bye");

这将在第 3 个位置添加字符串"bye"(索引 2 是第 3 个位置,因为索引从 0 开始)。

3) boolean addAll(Collection c):它将指定集合c的所有元素添加到列表中。如果指定的集合为null,则抛出NullPointerException。考虑下面的例子 –

LinkedList<String> llistobj = new LinkedList<String>();ArrayList<String> arraylist= new ArrayList<String>();arraylist.add("String1");arraylist.add("String2");llistobj.addAll(arraylist);

这段代码会将ArrayList的所有元素添加到LinkedList中。

4)boolean addAll(int index, Collection c):它将集合c的所有元素从列表中的给定索引开始添加到列表中。如果集合c为null,则抛出NullPointerException;如果指定的索引超出范围,则抛出IndexOutOfBoundsException。

llistobj.add(5, arraylist);

它会将ArrayList的所有元素从位置 6(索引 5)开始添加到LinkedList。

5)void addFirst(Object item):它在列表的第一个位置添加项(或元素)。

llistobj.addFirst("text");

它会在列表的开头添加字符串"text"。

6)void addLast(Object item):它在列表的末尾插入指定的项目。

llistobj.addLast("Chaitanya");

该语句将在链表的末尾添加一个字符串"Chaitanya"。

7) void clear():删除列表中的所有元素。

llistobj.clear();

8)Object clone():返回列表的副本。

对于例如我的linkedList有四个项目:text1,text2,text3和text4。

Object str= llistobj.clone(); System.out.println(str);

输出:上面代码的输出是:

[text1,text2,text3,text4]

9) boolean contains(Object item):它检查给定项是否存在于列表中。如果该项目存在,则返回true,否则返回false。

boolean var = llistobj.contains("TestString");

它将检查列表中是否存在字符串"TestString"。

10) Object get(int index):从列表中返回指定索引的项。

Object var = llistobj.get(2);

它将从列表中获取第 3 个项目。

11) Object getFirst():从列表中取出第一个项目。

Object var = llistobj.getFirst();

12)Object getLast():从列表中取出最后一项。

Object var= llistobj.getLast();

13)int indexOf(Object item):返回指定项的索引。

llistobj.indexOf("bye");

14)int lastIndexOf(Object item):返回指定元素最后一次出现的索引。

int pos = llistobj.lastIndexOf("hello);

整数变量pos将具有最后一次出现的字符串"hello"的索引。

15)Object poll():它返回并删除列表的第一项。

Object o = llistobj.poll();

16)Object pollFirst():与poll()方法相同。删除列表中的第一项。

Object o = llistobj.pollFirst();

17)Object pollLast():返回并删除列表的最后一个元素。

Object o = llistobj.pollLast();

18)Object remove():删除列表的第一个元素。

llistobj.remove();

19)Object remove(int index):它从列表中删除指定索引处的项目。

llistobj.remove(4);

它将从列表中删除第 5 个元素。

20)Object remove(Object obj):从列表中删除指定的对象。

llistobj.remove("Test Item");

21)Object removeFirst():它从列表中删除第一个项目。

llistobj.removeFirst();

22)Object removeLast():删除列表的最后一项。

llistobj.removeLast();

23)Object removeFirstOccurrence(Object item):删除指定项的第一次出现。

llistobj.removeFirstOccurrence("text");

它将从列表中删除第一次出现的字符串"text"。

24)Object removeLastOccurrence(Object item):删除给定元素的最后一次出现。

llistobj.removeLastOccurrence("String1);

它将删除最后一次出现的字符串"String1"。

25)Object set(int index, Object item):用赋值更新指定索引的项。

llistobj.set(2, "Test");

它将使用字符串"Test"更新第 3 个元素。

26) int size():返回列表元素的数量。

llistobj.size();

相关推荐