欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

java容器集合

程序员文章站 2022-03-20 19:06:21
java 集合分为 Collection 和 Map 两大类 Collection 是 Java 集合框架的顶层接口,它是对容器类进行增、删、改、查的定义,同时继承了 Iterable 接口,具有对集合或容器中的元素进行遍历的能力 Collection 继承了 Iterable 接口,具有了快速遍历 ......

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唯一

中等

中等