Collection总体结构图:
Collection 继承 Iterable 主要有两个分支, List 和 Set ,都是继承Collection 接口。
Collection 中 包含一个 iterator() 返回一个 Iterator接口 ,调用 hasNext() 判断 是否可以迭代 ,调用next() 获取迭代对象;
1. Collection集合
Collection定义:
public interface Collection<E> extends Iterable<E>
Collection集合中包含了许多方法, 用来操作集合。Collection集合的子类都实现了无参数和带参数的构造函数 ,带参数的构造函数可以进行集合之间的转换;
boolean add(E e) 确保此集合包含指定的元素(可选操作)。 boolean addAll(Collection<? extends E> c) 将指定集合中的所有元素添加到这个集合(可选操作)。 void clear() 从这个集合中移除所有的元素(可选操作)。 boolean contains(Object o) 返回 true如果集合包含指定元素。 boolean containsAll(Collection<?> c) 返回 true如果这个集合包含指定集合的所有元素。 boolean equals(Object o) 将指定的对象与此集合进行比较,以进行相等性。 int hashCode() 返回此集合的哈希代码值。 boolean isEmpty() 返回 true如果集合不包含任何元素。 Iterator<E> iterator() 返回此集合中的元素的迭代器。 default Stream<E> parallelStream() 返回一个可能并行 Stream与集合的来源。 boolean remove(Object o) 从这个集合中移除指定元素的一个实例,如果它是存在的(可选操作)。 boolean removeAll(Collection<?> c) 删除此集合中包含的所有元素(可选操作)的所有元素(可选操作)。 default boolean removeIf(Predicate<? super E> filter) 删除满足给定谓词的这个集合的所有元素。 boolean retainAll(Collection<?> c) 仅保留包含在指定集合中的这个集合中的元素(可选操作)。 int size() 返回此集合中的元素的数目。 default Spliterator<E> spliterator() 创建此集合中的元素的 Spliterator。 default Stream<E> stream() 返回一个序列 Stream与集合的来源。 Object[] toArray() 返回包含此集合中所有元素的数组。 <T> T[] toArray(T[] a) 返回包含此集合中所有元素的数组;返回数组的运行时类型是指定的数组的运行时类型。
2. List集合
List定义
public interface List<E> extends Collection<E>
List集合继承Collection集合 ,存储元素的特点有序可重复 ,有序是指存取去的顺序和取出的顺序一致,有序不是指的是大小顺序,有序是因为List中元素有下标可以通过下标访问,下标从0开始递增。
3. Set集合
Set定义
public interface Set<E> extends Collection<E>
Set集合继承Collection集合,Set集合存储元素的特点无序不可重复,无序表示存进去是这个顺序,取出来就不一定是这个顺序了,另外Set集合中元素没有下标,Set集合中的元素不能重复。
Set集合和Collection集合中方法完全一样。
4. AbstractCollection集合
AbstractCollection定义
public abstract class AbstractCollection<E> implements Collection<E>
AbstractCollection是一个抽象类实现了Collection接口
5. AbstractList集合
AbstractList定义
public abstract class AbstractList<E> extends AbstractCollection<E> implements List<E>
AbstractList集合继承AbstractCollection实现List接口
6. AbstracSet集合
AbstractSet定义
public abstract class AbstractSet<E> extends AbstractCollection<E> implements Set<E>
AbstractSet集合继承AbstractCollection实现Set接口