集合分类
1.Collection框架
Collection
├List
│├LinkedList
│├ArrayList
│└Vector
│ └Stack
└Set
从图中我们可以看出,Collection接口下共有Set、List、Queue三个子接口。由于后面我们要着重分析的是ArrayList、LinkedList、TreeSet、HashSet,因此我们不对Queue这个子接口做过多的解读。
List接口:List是一个有序的集合,每个元素都有索引且起始索引位置为0。
Set接口:Set是一个无序的集合,而且Set中不允许有重复元素。HashSet和HashMap之间、TreeSet和TreeMap之间还有依赖关系,后面我们会讲到。
2.Map框架
Map
├Hashtable
├HashMap
└WeakHashMap
Map接口:主要用来处理映射关系的集合。其中的每一个元素都是一个键值对(Entry)。
AbstractMap:实现Map的一个抽象类,Map中大多数方法都实现了。
HashTable:由于历史原因依旧继承Directionary类,但是实现了Map接口。
Collection接口
Collection是最基本的集合接口,一个Collection代表一组Object,即Collection的元素(Elements)
public interface Collection<E> extends Iterable<E>
{
int size();
boolean isEmpty()();
boolean contains(Object o);
Iterator<E> iterator();
//返回包含此集合中所有元素的数组;返回数组的运行时类型是指定的数组的运行时类型。如果集合适合在指定的数组中,则返回其中。否则,将在指定数组的运行时类型和该集合的大小分配一个新的数组
Object[] toArray();
<T> T[] toArray(T[] a);
//Modification Operations(修改 操作)
boolean add(E e);
boolean remove(Object o);
//Bulk Operations(块 操作)
boolean containsAll(Collection<?> c);
boolean addAll(Collection<? extends E> c);
boolean removeAll(Collection<?> c);
default boolean removeIf(Predicate<? super E> filter) {};
boolean retainAll(Collection<?> c);
void clear();
//Comparison and hashing(比较 和 哈希)
boolean equals(Object o);
int hashCode();
default Spliterator<E> spliterator(){};
default Stream<E> stream(){};
default Stream<E> parallelStream(){};
}