三者的关系
一、Iterable
Iterable接口是java 集合框架的顶级接口,实现此接口使集合对象可以通过迭代器遍历自身元素,它的成员方法如下:
| 方法 | 描述 |
| iterator() | 返回一个内部元素为T类型的迭代器 |
| forEach() | 对内部元素进行遍历 |
部分代码:
public static void main(String[] args) {
ArrayList list = new ArrayList<>();
list.add(1);
list.add(2);
list.add(3);
for (Integer e : list) {
System.out.println(e.toString());
}
}
二、Collection
Collection继承于Iterable的泛型接口,Collection不一定具备线性结构的特点,
public interface Collectionextends Iterable
| 方法 | 描述 |
| int size() | 返回容器中元素的个数 |
| boolean isEmpty() | 容器是不是空的 <==> size = 0 |
| boolean contains(Object o) | 容器中是否存在o元素,调用equals方法 |
| boolean add(E e) | 把元素e放入到容器中,放入可能会失败 |
| boolean remove (Object o) | 将容器中和o相等的其中一个元素删掉 |
| boolean addAll(Collection c) | 将c中所有的元素都放到当前容器中 |
| void clear() | 清空容器中所有元素 |
| boolean containsAll(collection c) | 判断当前容器是否包含容器c的元素 |
| iteration() | 返回iteration对象,用于遍历容器 |
| boolean removeAll(collection c) | 删除容器c中所有的元素 |
| retainAll(Collection c) | 仅保留容器c中出现的元素 |
| Object [] toArray() | 把容器转换为一个数组 |
三、List
List是一个接口,接口不能进行实例化,只能引用实现其接口具体的类
Collectionlist1 = new ArrayList<>(); Collection list2 = new linkedList<>();
| 方法 | 描述 |
| boolean add(E e) | 尾插e,永远返回true |
| void add(int index, E element) | 将元素插入到index下标处 |
| boolean addAll(collection c) | 将c容器中的所有元素插入到当前容器中,永远返回true |
| E remove(int index) | 将index 位置的元素从线性结构中取出并返回 |
| boolean remove(Object o) | 明确是删除第一个遇到的和o相等的元素;用equals方法比较相等 |
| E get(int index) | 返回index位置的元素;index范围[ 0 , size()) |
| E set(int index,E element) | 用element替换index位置的元素,并返回index位置原来的元素 |
| void clear() | 清空 |
| boolean contains(Object o) | 判断线性表中是否存在o |
| int indexof(Object o) | 从前往后,第一个和o相等的元素所在的位置;相等:equals |
| int lastIndexOf(Object o) | 从后往前,最后一个和o相等的元素所在的位置 |
| List | 将原有线性结构的[fromIndex,toIndex)截取成一个新的线性结构并返回 |



