集合、JUC包下的线程安全集合类

目录

1. 结构图

Collection

Map

2. Collection

2.1. List集合(有序)

ArrayList集合

Vector集合

LinkedList集合

遍历方式

2.2. Set集合(无序)

HashSet

TreeSet(有序的)

2.3. Queue

BlockingQueue:阻塞队列

3. Map        

Hashtable

TreeMap

HashMap

遍历方式

4. jUC 包下线程安全的集合类的体系结构

4.1. Collection

List-CopyOnWriteArrayList

set-CopyOnWriteArraySet/ConcurrentSkipListSet

queue

4.2. map

5. 使用Collections 工具类封装不安全集合


1. 结构图

Collection

Map

2. Collection

2.1. List集合(有序)

ArrayList集合

  • 使用索引来查找元素,查询效率较高
  • ArrayList的末尾进行插入和删除操作非常高效,因为它只涉及数组的末尾元素。
  • 但是:在ArrayList的中间进行插入和删除操作,需要移动后续元素,因此效率较低;在这种情况下,使用LinkedList可能更适合。

Vector集合

  • Vector是线程安全的,它的所有方法都是同步的(synchronized);然而:由于同步机制的存在,Vector的性能相对较低
  • 与ArrayList一样:末尾进行插入和删除操作非常高效,因为它只涉及数组的末尾元素。
  • 在中间插入和删除操作时,Vector由于需要移动后续元素和进行同步,效率较低。

LinkedList集合

  • LinkedList的底层数据结构是双向链表。每个节点都包含一个存储元素的值和两个指针,一个指向前一个节点,一个指向后一个节点。
  • LinkedList中插入和删除元素更加高效,因为它只需要修改相邻节点的指针,而不需要像ArrayList那样移动后续元素。
  • 访问LinkedList中的元素,需要从头节点或尾节点开始遍历链表,直到找到目标元素。因此,LinkedList在随机访问方面的性能较差。

遍历方式

2.2. Set集合(无序)

HashSet

  • 无序性:HashSet中的元素是无序的
  • 唯一性:HashSet不允许存储重复的元素
  • 允许空元素:HashSet可以存储空元素(null),并且只能存储一个空元素
  • 基于哈希表实现:HashSet的底层数据结构是哈希表(HashMap),底层实现是HashMap
  • 底层HashMap是:底层维护了Node类型的数组table(Node数组+单向链表+红黑树)
  • 详见HashMap说明

TreeSet(有序的)

  • TreeSet是一个有序、不允许重复元素的集合,底层使用红黑树实现。它的特点包括有序性、唯一性、使用比较器进行元素的排序和比较,以及提供了快速的查找和导航操作。
  • 红黑树保持了集合的有序性和平衡性,使得TreeSet具有较高的性能。

2.3. Queue

BlockingQueue:阻塞队列

3. Map        

Hashtable

  • Hashtable是线程安全的集合;synchronized
  • 不允许空键和空值:Hashtable不允许存储空键(null)和空值(null)
  • 底层:是数值+单向链表实现的

TreeMap

  • TreeMap是一个有序、键唯一的集合,底层使用红黑树实现。
  • 红黑树保持了集合的有序性和平衡性,使得TreeMap具有较高的性能。
  • Key不能为空

HashMap

遍历方式

4. jUC 包下线程安全的集合类的体系结构

4.1. Collection

List-CopyOnWriteArrayList

set-CopyOnWriteArraySet/ConcurrentSkipListSet

queue

4.2. map

5. 使用Collections 工具类封装不安全集合

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值