导读
一般数据结构可以按照维度来进行分类
1、 一维度:链表、数组。这种的特点就是线性,所有的元素都是在一条线上,没有出圈的行为
2、 二维度:树、图。这种元素的特点就是有元素引发出来的线有大于等于3条。岔路太多
List属于一维度。
List的族谱
List的族谱关系图
List的分析
1、 List的起源
List的发源地是Collection(不是Collections,这个是个工具类)接口而来。Collection定义的接口如下
函数 | 含义 |
---|---|
int size() | 装了多少 |
boolean isEmpty() | 是否为空(就是想看看里面装东西没有) |
boolean contains(Object o) | 检查下有个东西装到里面没有 |
Iterator iterator() | 获取一个迭代器,好一个一个的迭代操作 |
Object[] toArray() | 转换成Object数组,有些时候有些人喜欢使用数据(可能是从c过来的人) |
T[] toArray(T[] a) | 转换成指定类型的数组,可能需要精准定位类型 |
boolean add(E e) | 往容器内装一个东西 |
boolean remove(Object o) | 从容器内拿东西 |
boolean containsAll(Collection<?> c) | 查看下是否包含另外一个筐子的所有元素 |
boolean addAll(Collection<? extends E> c) | 把一个筐子里面的东西全倒到本筐子里 |
boolean removeAll(Collection<?> c) | 只要是另外一个筐子的东西全给移除掉 |
default boolean removeIf(Predicate<? super E> filter) | 按照这个条件来清除筐子里面的东西 |
boolean retainAll(Collection<?> c) | 在另外一个筐里的全部保留,其余全给删除了 |
void clear() | 整个筐子里面的东西全给倒了扔了,不要了 |
boolean equals(Object o) | Object的equals方法(其实写不写都一样子) |
int hashCode() | Object的hashCode方法(其实写不写都一样子) |
default Spliterator spliterator() | JDK8提供的分割函数 |
default Stream stream() | JDK8获取一个Stream对象 |
default Stream parallelStream() | JDK8获取一个并行流 |
总结一下就是容器或者说是筐子的基本概念,想象一下,我们用筐子装超市的笔记本,笔记本的编号允许重复, 我们或者大家都想知道下面的问题答案:装了多少个笔记本了?还能装多少?这个筐子能装多少? 有个编号叫89757的有没有装进去?我想拿一个编号9527的,怎么拿?想扔掉编号以8开头的怎么扔?等等操作