Java 集合

interface Collection

不可重复无序 Set(interface), 是Collection的子接口,删除和插入的效率高,检查元素效率低下

1. LinkedSet

2. HashSet

3. LinkedHashSet

4. TreeSet

可重复有序 List, 是Collection的子接口,查找元素的效率较高,插入元素和删除元素效率低

1. ArrayList:基于数组实现,查询赋值较快

2. Vector:基于数组实现,加了Synchronized,保证线程安全,适用于多线程

3. LinkedList:基于链表实现,增删较快

注:LinkedList实现了Queue 接口,因此,我们也可以理解为 LinkedList 就是一个队列;

Queue: 队列是一种特殊的线性表,遵循先入先出、后入后出的基本原则,分阻塞队列(线程安全)和非阻塞队列

1.BlockingQueue(阻塞队列)

1、DelayQueue
一个支持延时获取元素的无界阻塞队列

2、LinkedTransferQueue
一个由链表结构组成的无界阻塞队列。

3、ArrayBlockingQueue
有界队列,阻塞式,初始化时必须指定队列大小,且不可改变,底层由数组实现;

4、SynchronousQueue
最多只能存储一个元素,每一个put操作必须等待一个take操作,否则不能继续添加元素

5、PriorityBlockingQueue
一个带优先级的队列,而不是先进先出队列。元素按优先级顺序被移除,而且它也是无界的,也就是没有容量上限,虽然此队列逻辑上是无界的,但是由于资源被耗尽,所以试图执行添加操作可能会导致 OutOfMemoryError 错误;

 

2.AbstractQueue(非阻塞队列)

1、ConcurrentLinkedQueue
  单向链表结构的无界并发队列, 非阻塞队列,由CAS实现线程安全,内部基于节点实现

2、ConcurrentLinkedDeque  
双向链表结构的无界并发队列, 非阻塞队列,由CAS实现线程安全    

3、PriorityQueue
内部基于数组实现,线程不安全的队列
 

Deque:Java数据结构之Deque(双端队列)_Jason&Zhou的博客-CSDN博客_deque java

Map: 不是Collection接口的继承

1. HashMap 非线程安全,允许使用null键和null值,与HashSet一样,不保证映射的顺序

2. LinkedHashMap 按照添加顺序不变,使用LinkedHashMap

3.TreeMap 可以自然排序,也可以自定义排序规则,要实现Comparator接口

4. HashTable 线程安全,不允许使用 null 作为 key 和 value,不能保证其中 Key-Value 对的顺序

5. ConcurrentHashMap 线程安全

Collections.synchronizedMap包装后返回的map是加锁的

https://www.jb51.net/article/239557.htm

https://www.jb51.net/article/224337.htm

Properties 类是 Hashtable 的子类,该对象用于处理属性文件,由于属性文件里的 key、value 都是字符串类型,所以 Properties 里的 key 和 value 都是字符串类型

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值