1 Iterable 接口 有一个方法用于生产迭代器
public interface Iterable<T> { Iterator<T> iterator(); }
2 Iterator 接口,三个方法, 用于遍历集合元素
public interface Iterator<E> { boolean hasNext(); // 迭代器是否有更多元素 E next(); // 返回迭代器下一个元素 void remove(); // 删除上一次返回的元素, }
3 Collection 接口 所有非映射关系的父接口
public interface Collection<E> extends Iterable<E> { // Query Operations // 返回集合中元素个数,如果个数超过Integer.MAX_VALUE,返回Integer.MAX_VALUE int size(); // 如果集合为空,返回true boolean isEmpty(); // 检测集合中是否有o存在 boolean contains(Object o); // 返回集合迭代器 Iterator<E> iterator(); // 返回集合的浅拷贝,并保持迭代器的返回顺序 Object[] toArray(); // 返回集合的浅拷贝,并保持迭代器的返回顺序, 并可以指定数组的运行时类型和大小 toArray(new Object[0]) 和 toArray() 在功能上是相同的。 <T> T[] toArray(T[] a); // 如果集合不允许重复,那加入一个已有元素时返回false boolean add(E e); // 移除指定元素,如果集合改变,返回true boolean remove(Object o); // 如果包含指定集合中的所有元素,返回true boolean containsAll(Collection<?> c); // 加入指定集合所有元素 boolean addAll(Collection<? extends E> c); // 删除集合中指定集合存在的多有元素 boolean removeAll(Collection<?> c); //只保留两个集合中并的元素 boolean retainAll(Collection<?> c); void clear(); boolean equals(Object o); int hashCode(); }
4 List 接口 继承collect 接口 , 只看自己独有的方
// 将集合插入指定位置 boolean addAll(int index, Collection<? extends E> c); // 返回指定位置元素 E get(int index); //改变指定位置元素 E set(int index, E element); 插入指定位置指定元素 void add(int index, E element); 删除指定位置元素 E remove(int index); 返回指定元素出现的第一个位置 ,如果没出现返回-1 int indexOf(Object o); 返回指定元素出现的最后一个位置 int lastIndexOf(Object o); 返回迭代器 ListIterator<E> listIterator(); 从指定位置返回迭代器 ListIterator<E> listIterator(int index); 返回指定范围列表视图 【a,b) List<E> subList(int fromIndex, int toIndex);
5 ListIterator 迭代器 继承 Iterator 只看自己独有的方法
public interface ListIterator<E> extends Iterator<E> { 如果逆向遍历,是否有元素 boolean hasPrevious(); 返回列表前一个元素 E previous(); 返回下一个元素下标 int nextIndex(); 用指定元素替换 next 或 previous 返回的最后一个元素(可选操作)。 void set(E e); 添加指定元素,next下一个元素前previous后面。 void add(E e);
6 RandomAccess 随机访问接口 实现此接口的集合用for迭代比较好
7 Cloneable 可被克隆接口,调用对象的clone方法必须实现此接口
8 Serializable 可序列化接口