java2提出了collection的概念,本文对collection框架进行分析,并对java2之前的容器进行回顾。
0x01 从Arraylist说起
什么是集合,简单地说,集合类似可以自适应、动态增长的数组,这也是提出集合概念的一个初衷。
最常见的Arraylist就是集合框架下的一员,准确的说它是一个实现了Collection接口的实现类,内部通过数组的形式存储数组,因此也是一个支持高效随机存储的集合,这里之所用使用高效两字是因为链式存储类型可能对外也提供随机存储操作,然而内部实现则需要多次遍历,因此从实现上并非随机存储。
public class ArrayList extends AbstractList
implements List, RandomAccess, Cloneable, java.io.Serializable
这里Arraylist是AbstractList的子类,而父类AbstractList是一个抽象类,继承自抽象类AbstractCollection,AbstractCollection实现了多数Collection interface中的方法。每一层抽象类都是对子类型的一个归类,对上一层部分接口方法进行实现或者增加新的方法。
public abstract class AbstractList extends AbstractCollection implements List
public abstract class AbstractCollection implements Collection
0x02 Collection框架成员
collection中涉及成员繁多,从各个接口到中间抽象类再到具体实现类。
java中常用的两个概念co