数据结构:4.List的认识
【目标】
本章旨在理解和总结关于 List 的一些具体实现和这些具体实现类之间的关系。
声明:数据结构的具体实现远不止有以下部分,只是以下部分是数据结构的核心部分。本章我们特来对其进行简单的理解。
数据结构核心部分按照逻辑关系进行划分(概念上的划分):
数据结构核心部分按照JAVA内置数据结构实际实现的继承关系进行划分(实际上的关系):
关于这一张图,是JAVA内置的对于数据结构核心概念的实现之间的关系,本章讲述的是和List(线性表)有关的类的实现以及这些类的具体关系。
一、以下DeepSeek关于Iterable和 Collection 的补充:
1. Iterable 是迭代作用,就是为了实现遍历功能,别的就没了。
✅对。
Iterable只有一个核心职责:返回一个迭代器,让你能用for-each循环。
它没有add、remove、size等方法。
public interface Iterable<T> { Iterator<T> iterator(); // 就这一个核心方法 }(迭代器:就是一个“游标对象”,它通过hasNext()和next()两个方法,让你统一遍历各种集合(数组、链表、树等),而不需要知道集合的内部结构)
2. Collection 是写了他们共有的方法,核心来说就是代码的共性提取的产物。
✅对。
Collection把List、Set、Queue共有的方法抽到一层,避免重复定义。
public interface Collection<E> extends Iterable<E> { int size(); boolean isEmpty(); boolean contains(Object o); boolean add(E e); boolean remove(Object o); void clear(); // ... 其他共性方法 }3. 里面包括有增删查改但不限于此的方法。
✅对。
增删查改是核心,还有size()、isEmpty()、clear()等。
4. 但需要注意的是,他们都是接口。
✅对。
不能直接new Iterable()或new Collection(),必须由具体类实现。
5. 都需要在具体的数据结构实现(比如 ArrayList)。
✅对。
ArrayList实现了List,List继承了Collection,Collection继承了Iterable。
public class ArrayList<E> extends AbstractList<E> implements List<E>, RandomAccess, Cloneable, Serializable { // 实现了所有方法 }二、关于List(线性表)
List继承自Collection,其中有三个子类分别为ArrayList(顺序表)、LinkedList(链表)、Stack(栈)
至于具体的:是怎么实现的?底层实现分别依靠什么?这其中分别有什么不同点?等等问题,我们放到后续章节来进行逐个讲解。
