java容器集合

Posted on 2019-05-12 23:52  翻身的咸鱼  阅读(235)  评论(0编辑  收藏  举报

java 集合分为 Collection 和 Map 两大类

Collection 是 Java 集合框架的顶层接口,它是对容器类进行增、删、改、查的定义,同时继承了 Iterable 接口,具有对集合或容器中的元素进行遍历的能力

Collection 继承了 Iterable 接口,具有了快速遍历的能力,Iterable 接口中定义了获取集合迭代器的方法 iterator(),该方法返回一个容器的迭代器,迭代器接口中定义 2 个方法用于结合 while 或 for 迭代

根据存储数据结构把 Collection 细分为两种子集合:

  List:元素有序,可重复(不唯一)的集合,包含以下三个实现类:

    ArrayList 是 List 接口的可变数组的实现类,可以自动拓容

    Vector(已过时)

    LinkedList 是 List 的实现类,底层数据结构是链表

  Set:元素无序,唯一的集合,包含以下两个实现类:

    HashSet 是 Set 接口的实现类,底层数据结构是 Hash 表/散列表,查找效率高、添加效率高、删除效率高

      LinkedHashSet 底层数据结构是 Hash 表+链表,通过内部的链表维持添加次序,继承于 HashSet

    TreeSet 是 Set 接口的实现类,底层数据结构是二叉树,排序后查询速度比 HashSet 快

Map 表示映射关系的集合,里面存储的元素是 key-value(键值对),键值对就表示映射关系,里面 key 唯一

包含有以下三个子集合:

  HashMap 是 Map 的实现类,其中 key 是按照 HashSet 存储的

  LinkedHashMap 是 Map 的实现类,其中 key 是按照 LinkedHashSet 存储的

  TreeMap 是 Map 的实现类,其中 key 是按照 TreeSet 存储的

总结:

名称

存储结构

顺序

唯一性

查询效率

添加/删除效率

ArrayList

顺序表

有序(添加)

不唯一

LinkedList

链表

有序(添加)

不唯一

最高

HashSet

Hash

无序

唯一

最高

最高

HashMap

Hash

Key无序

Key唯一

最高

最高

LinkedHashSet

Hash+

有序(添加)

唯一

最高

最高

LinkedHashMap

Hash+

Key有序( 添加)

Key唯一

最高

最高

TreeSet

二叉树

有序(升序)

唯一

中等

中等

TreeMap

二叉树

有序(升序)

Key唯一

中等

中等