在Java中,LinkedList 和 List 是两个不同的概念。List 是一个接口,而 LinkedList 是实现了 List 接口的一个具体类。
- List 接口:
List是Java集合框架中的一个接口,它表示有序的集合,允许重复元素。List接口继承自Collection接口,它扩展了Collection接口,添加了有序性和索引访问元素的功能。- 常见的
List实现类还包括ArrayList、Vector等。
public interface List<E> extends Collection<E> {
// ...
}
- LinkedList 类:
LinkedList是List接口的一个实现类,它基于链表数据结构实现。- 与
ArrayList不同,LinkedList的每个元素都包含对前一个和后一个元素的引用,因此可以实现快速的插入和删除操作。 LinkedList在随机访问时性能相对较差,因为它需要遍历链表来找到指定索引的元素。
public class LinkedList<E> extends AbstractSequentialList<E> implements List<E>, Deque<E>, Cloneable, Serializable {
// ...
}
继承关系上,LinkedList 并没有直接继承 List 接口,而是通过实现 List 接口来达到对 List 功能的实现。
总结:
List是一个接口,定义了有序的集合,可以包含重复元素。LinkedList是List接口的一个实现类,它通过链表数据结构实现了List接口的功能。- 在选择使用
LinkedList还是其他List实现类(如ArrayList)时,需要考虑具体的使用场景和性能需求。LinkedList在插入和删除操作上可能更高效,而对于随机访问,ArrayList通常更有优势。










