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 ) 截取成一个新的线性结构并返回