加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java容器-全览

发布时间:2020-12-15 02:34:28 所属栏目:Java 来源:网络整理
导读:1.Collection全览-非线程安全的实现类 接口简介 Iterable:迭代器接口,用于遍历数据。foreach或者iterator。 Collection:集合,java容器大部分集合的父类接口。java集合分两派,一派是Collection(只存储值的容器),一派是Map(存储键值对的容器) List:

1.Collection全览-非线程安全的实现类

  

接口简介

Iterable:迭代器接口,用于遍历数据。foreach或者iterator。

Collection:集合,java容器大部分集合的父类接口。java集合分两派,一派是Collection(只存储值的容器),一派是Map(存储键值对的容器)

List:顺序写数据的数组容器,内存连续(jvm层面)

Queue:先进先出(FIFO)队列,入队出队操作都有两种实现(一种是失败抛异常,一种是返回null或者false),不能写入null

Deque:double?ended?queue(双端队列),不在是FIFO,前后都可以插入删除,不能从中间操作,不能写入null

Set:用于存放非重复元素的集合,可以插入null

SortedSet:支持排序的set集合(set使用的是hash存储,默认是不支持排序功能的)

NavigableSet:提供有序集合的扩展功能,如返回大于、大于等于、小于、小于等于某个key的子集合等

类简介  

  List:

?Stack:LIFO(LAST-IN-FIRST-OUT)数组,继承自VECTOR(基本已废弃,图中未体现,这里也不过多介绍)

ArrayList:有序数组,底层使用连续的物理内存存储,数组大小不能动态改变,支持自动扩容,实际是复制一个更大的新数组出来。

LinkedList:使用链表形式组成的有序数组,不支持随机存储,需要重头遍历,物理内存不连续,数组大小无限制。

Queue:

LinkedList:同上,只是通过已有功能扩展实现了队列的功能

ArrayQueue:jdk内部使用

PriorityQueue:优先级队列,根据插入的数据的优先级自动排序,(优先级来源于Comporator,或者插入类实现Comparable接口的compareTo方法)

Deque:

LinkedList:支持双端操作

ArrayQueue:内部使用

Set:

HashSet:使用Hash表存储的集合

LinkedHashSet:有序的hashset(按照插入顺序使用链表的形式连接),不支持排序

TreeSet:支持排序的hashset

SortedSet:

TreeSet:支持排序的hashset

2.Collection全览-线程安全的实现类

  

3.Map全览-非线程安全的实现

  

接口简介

Map:无序的hash映射,以键值对的形式存储数据。

SortedMap:表示是一个有序的hash映射表

NavigableMap:提供有序hash映射的扩展功能,如返回大于、大于等于、小于、小于等于某个key的子集合等

类简介

EnumMap:key为枚举类的hash映射表

HashMap:键值对存储的hash映射,允许key或者value为null

LinkedHashMap:在hashmap的基础上增加了一个链表,按照插入顺序链接,保证有序性

WeakHashMap:同hashmap,只是使用的是弱引用,在内存不足的时候会被自动回收,一般可以用来做缓存,不能用来存储不可丢失的数据。

IdentityHashMap:插入删除等操作使用==进行比较的hash映射。注意:==比较得到是地址,其它的hash映射都是使用equals和hashCode进行比较的,基础类型比较的是值,自定义对象,可以自己覆写equals逻辑。

Treemap:支持排序的hashmap

4.Map全览-线程安全的实现

  

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读