Java容器分类

本文相当于一个目录,用来指导我之后的学习内容。

容器.png

容器分类

容器的第一个接口是Collection叫集合。集合不管这个容器是什么结构都能把元素放在里面,是一个一个地放;Map是以键值对的方式往里放。其实Map可以看作是Collection一个特殊的变种,可以把一对对象看成一个entry对象,所以这也是一整个对象。容器就是用来装一个个对象的。严格来讲数组也属于容器。从数据结构角度来讲在物理上的这种存储的数据结构其实只有两种,一种是连续存储的数组Array,另一种就是非连续存储的一个指向另外一个的链表。

Queue - 为并发而生

容器有两大接口:Collection是一个一个的,Map是一对一对的。
Collection又分三大类。List、Set,Queue是后来加入的接口,而这个接口专门就是为高并发准备的,所以这个接口对高并发来说才是最重要的。List有序可重复,Set无序不重复。

Queue就是一个队列,有进有出,先进先出。它是在这个基础之上实现了很多的多线程的访问方法(比如说put阻塞式的放、take阻塞式的取),这个在其他的List、Set里面都是没有的。采用队列结构最主要的原因是为了实现任务的装载和取出,这里面最重要的就是阻塞队列,它实现的初衷就是为了线程池、高并发做准备的。

原来的队列结构是为了装东西做准备的。所以在说Queue的区别的时候主要就说高并发和普通的这种容器这上面的一个区别。Queue是Collection的子接口,里面又分了各种各样的队列,Queue里面还有一个子接口叫Deque叫双端队列,一般的队列只是从一端往里扔从另一端往外取。Deque可以从反方向装从另外一个方向取。

参考:马士兵《多线程与高并发》

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值