java LinkedList
时间: 2025-03-06 13:22:11 浏览: 30
### Java 中 `LinkedList` 的用法及相关信息
#### 1. 基本概念
`LinkedList` 是 Java 集合框架中的一个重要实现类,它实现了 `List` 接口和 `Deque` (双端队列)接口。与数组列表不同,链表通过节点链接来存储元素[^1]。
#### 2. 创建 `LinkedList`
可以使用默认构造函数创建一个空的 `LinkedList` 实例:
```java
import java.util.LinkedList;
// Create an empty linked list
LinkedList<String> linkedList = new LinkedList<>();
```
也可以基于现有集合初始化一个新的 `LinkedList`:
```java
import java.util.Arrays;
import java.util.LinkedList;
// Initialize with existing elements from another collection
LinkedList<Integer> numbers = new LinkedList<>(Arrays.asList(1, 2, 3));
```
#### 3. 添加元素
向 `LinkedList` 插入新项非常灵活,支持多种方式:
- 使用 `add(E e)` 方法在列表末尾追加元素;
- 利用 `offerFirst(E e)` 或者 `push(E e)` 将对象放置于头部位置;
- 调用 `offerLast(E e)` 把数据添加到尾部;
示例如下所示:
```java
linkedList.add("first");
linkedList.offerFirst("second"); // Add at the beginning
linkedList.push("third"); // Also adds at the start
linkedList.offerLast("fourth"); // Adds element at end of queue
```
#### 4. 访问元素
由于 `LinkedList` 同时具备双向迭代特性以及随机访问能力,因此提供了丰富的检索手段:
- 获取第一个/最后一个元素:`getFirst()`, `getLast()`;
- 查看但不移除头指针所指向的对象:`peek()`, `peekFirst()`, `peekLast()`;
- 移动并返回首个匹配项的位置:`indexOf(Object o)`;
具体操作如下:
```java
System.out.println(linkedList.getFirst()); // Prints "third"
System.out.println(linkedList.peekLast()); // Outputs "fourth"
int index = linkedList.indexOf("first"); // Returns position where found or -1 otherwise
```
#### 5. 删除元素
删除功能同样强大而多样:
- 清理整个容器的内容:`clear()`;
- 取消指定索引处的数据记录:`remove(int index)`;
- 弹出栈顶元素(即最先进来的那个):`pop()`;
- 自定义条件下的批量清除动作:`removeIf(Predicate<? super E> filter)`;
实际应用例子:
```java
linkedList.pop(); // Removes topmost item ("third")
linkedList.remove(0); // Deletes entry located at given offset
linkedList.removeIf(s -> s.equals("second")); // Filters out all occurrences matching predicate expression
```
#### 6. 特殊用途方法
除了上述常规 API 外,还有几个专用于处理特定场景的方法值得提及:
- **反转顺序**:调用 `descendingIterator()` 返回逆序遍历器实例;
- **转换成数组形式**:借助 `toArray(T[] a)` 函数可方便地把内部结构映射至目标类型的一维数组上;
代码片段展示这些特性的运用:
```java
for(String str : linkedList.descendingIterator()){
System.out.print(str + ", ");
}
String[] arrayForm = linkedList.toArray(new String[linkedList.size()]);
```
阅读全文
相关推荐
















