链表是 AbstractList 类的实现,其中我们有对象的线性排序,其中每个节点有 32 个组件:对象和指向列表中下一个对象的指针。链表对象本身通常引用一个“头”节点,或链表中的第一个节点。
用例
链表对于恒定 时间添加和删除元素非常有用。要添加元素,我们要做的就是将 List 中最后一个对象的指针更改为新对象。我们也可以将列表视为先进先出的数据结构,也就是“队列”。
当我们需要获取索引的特定元素时,链表可能没有那么有用,因为我们不知道它位于何处。当我们想要获取特定索引时,我们必须遍历数组直到该索引,与普通数组的恒定时间 getIndex 操作相比,这是一个 O(n) 时间操作。
LinkedLists 可以是单链接的,也可以是双链接的。单链表是其中每个对象仅指向列表中的下一个对象,不允许我们向后迭代的能力。双向链表具有指向前一个和下一个节点的指针,允许我们在任一方向上自由移动,直到我们碰到头或尾。
类方法
该类拥有用于构建和利用数据结构的各种方法
- add(E e) — 在 List 的末尾添加一个元素 e
- clear() — 删除所有元素
- contains(Object o) — 如果列表包含 o,则返回 true
- get(int index) — 获取索引处的对象
- indexOf(Object o) — 返回对象的索引
- peek() — 返回列表末尾的对象
- pop() — 移除最后的对象
- remove(Object O) — 移除指定的对象
- 七爪网7claw.com