Iterable

语法

Iterable 是一个具有迭代(遍历)功能的接口,并且是一个泛型接口

常见方法

Iterator<T> iterator();

功能

public interface Iterable <T> {
	Iterator<T> iterator();
}

一个对象实现 Iterable 接口就说明这个对象具备了迭代能力
Iterable 接口提供了一个 iterator() 方法,这个方法返回一个 Iterator 对象:用来迭代的对象(被称为迭代器

Collection

语法

public interface Collection<E> extends Iterable<E>{

}

Collection 是继承自 Iterable 的泛型接口
Collection 是不一定具备线性结构的特点
所有的 Collection 都具备迭代能力
线性表是一种 Collection
非线性表也是一种 Collection

常见方法

int size();

返回容器中元素的个数

boolean isEmpty();

容器是否为空

boolean contains(Object o);

容器中是否存在 o 元素
隐含着,需要遍历容器中所有的元素,和 o 元素进行相等性比较
因此,想让 contains 正确的返回,必须正确重写元素的 equals 方法

boolean add(E e);

把元素 e 放入容器中
容器中不允许出现相同元素,当尝试放入重复的元素时,放入就会失败

boolean remove(Object o);

将容器中和 o 相等的其中一个元素删除掉
提到相等性,就必须正确重写 equals 方法

boolean addAll(Collection c);

将 c 中所有元素都放到当前容器中,放入之后元素之间没有顺序

void clear();

清空容器内所有元素

List

语法

public interface List<E> extends Collection<E> {

}

继承自 Collection
线性结构
元素有顺序
可以排序、头插、尾插、头删、尾删

常见方法

boolean add(E e);

往容器中添加元素 e ,因为是线性结构,所以对应尾插操作,并且尾插不可能失败,返回值永远是 true

void add(int index, E element);

将元素插入到给定== index 下标位置==处,index 后的所有元素逻辑上后移一位

boolean remove(Object o);

删除第一个遇到的和 o 元素相等的元素
提到相等性,则需正确重写 equals 方法
返回值代表是否删除成功

E remove(int index);

将 index 位置的元素从线性结构中取出并返回,让 index 后的所有元素逻辑上前移一位

boolean addAll(Collection c);

将 c 容器中的所有元素(按照一定次序),一个个的尾插到 this 容器中

void sort(Comparator<E> c);

以 c 作为元素的比较器(天平),衡量元素大小进行排序

E get(int index);

返回 index 位置的元素

E set(int index, E element);

用 element 替换 index 位置的元素,并返回 index 位置原来的元素

int indexOf(E e);

从前往后,第一个和 e 相等的元素所在位置
相等:equals

int lastIndexOf(E e);

从前往后,最后一个和 e 相等的元素所在位置
相等:equals

List<E> subList(int fromIndex, int toIndex);

将原有线性结构的 [ fromIndex, toIndex ) 截取成一个新的线性结构并返回