LinkedList
是Java集合框架中的一种数据结构,它实现了List
接口并且可以作为队列(Queue
)和双向队列(Deque
)使用。底层是由链表实现的,可以动态地添加或删除元素而不需要重新分配内存空间。
1、下面是一个简单的LinkedList例子:
java代码
import java.util.LinkedList;
public class LinkedListExample {
public static void main(String[] args) {
// 创建LinkedList对象
LinkedList<String> ll = new LinkedList<>();
// 添加元素
ll.add("Java");
ll.add("is");
ll.add("an");
ll.add("object");
ll.add("oriented");
ll.add("programming");
ll.add("language");
// 输出LinkedList
System.out.println("LinkedList: " + ll);
// 添加或移除元素
ll.add(4, "powerful");
ll.removeLast();
// 输出LinkedList
System.out.println("LinkedList after modification: " + ll);
// 获取元素
String firstElement = ll.getFirst();
String lastElement = ll.getLast();
// 输出结果
System.out.println("First element: " + firstElement);
System.out.println("Last element: " + lastElement);
}
}
在上述代码中,我们首先创建了一个LinkedList
对象,并对其进行操作。通过调用add()
方法,我们将多个字符串添加到链表中,并使用getFirst()
和getLast()
方法获取首尾元素。然后,我们通过调用add()
和removeLast()
方法,向链表中添加和移除元素。最后,使用System.out.println()
方法输出结果。
其中输出结果如下:
LinkedList: [Java, is, an, object, oriented, programming, language] LinkedList after modification: [Java, is, an, object, powerful, oriented, programming] First element: Java Last element: programming
总体来说,LinkedList
作为Java集合框架中的一种数据结构,可以用于动态地添加或删除元素,具有很好的灵活性和效率。同时,它还支持队列和双向队列等操作,并且可以通过迭代器方便地访问所有元素,是一个非常实用的数据结构。
2、LinkList特有的方法
LinkedList
是 Java 中的一个标准类,用于实现双向链表数据结构。除了继承自List
、Queue
和Deque
接口的方法外,LinkedList
还提供了以下特定于链表的方法:
addFirst(E e)
/offerFirst(E e)
: 在链表头部插入指定元素。addLast(E e)
/offerLast(E e)
: 在链表尾部插入指定元素。getFirst()
/peekFirst()
: 获取链表的第一个元素(不删除元素),如果链表为空则返回null
。getLast()
/peekLast()
: 获取链表的最后一个元素(不删除元素),如果链表为空则返回null
。removeFirst()
/pollFirst()
: 移除并返回链表的第一个元素,如果链表为空则返回null
。removeLast()
/pollLast()
: 移除并返回链表的最后一个元素,如果链表为空则返回null
。removeFirstOccurrence(Object o)
: 从链表中移除第一个出现的指定元素。removeLastOccurrence(Object o)
: 从链表中移除最后一个出现的指定元素。push(E e)
: 在链表头部插入指定元素,相当于addFirst(E e)
方法。pop()
: 移除并返回链表头部的元素,相当于removeFirst()
方法。
这些方法都是针对链表结构特别设计的、在 ArrayList
中并不存在的方法。其中,一些方法(如 addFirst()
、removeFirst()
、push()
等)可以用于实现基于栈或队列的操作。