Collection层次结构
- Collection接口: 单列集合最顶层的接口,单列集合中的共性内容,所有单列集合都可以使用。
- List接口 / 集合: 有存储顺序,允许存储重复元素。
- ArrayList类(重点): 底层是数组实现的, 查找快, 增删慢。由于是数组实现,在增和删的时候会牵扯到数组增容,以及拷贝元素,所以慢。而数组是可以直接按索引查找, 所以查找时较快,一个普通的for循环可以遍历。
- LinkedList类: 底层是链表实现的, 增删快, 查找慢。由于链表实现, 增加时只要让前一个元素记住自己就可以, 删除时让前一个元素记住后一个元素, 后一个元素记住前一个元素. 这样的增删效率较高但由于没有索引,查询时需要一个一个的遍历, 所以查询效率较低。
- Vector类(了解): 和ArrayList原理相同,但线程安全, 效率略低,和ArrayList实现方式相同, 但考虑了线程安全问题, 所以效率略低 。
- Set接口 / 集合: 无存储顺序, 不允许存储重复元素,无索引。
- HashSet类 (重点):底层是哈希表(+红黑树)实现的。
- TreeSet类(了解):底层是二叉树实现,一般用于排序。
- LinkedHashSet类:可以保证存取顺序ÿ
- List接口 / 集合: 有存储顺序,允许存储重复元素。