Java集合与容器

Java集合与容器

关注数:0 文章数:8 访问量:119

Hashtable是一个比较古老的Map实现类,从它的名称就可以看得出来,因为没有遵循Java语言的驼峰命名规范,这可能是开发者的疏忽导致的吧。它和HashMap很像,同属于散列表,都可以存储K-V键值对,并且都可以实现O(1)的查找时间复杂度。有以下特性:1、首先就是线程安全,这也估计算是唯一一个优于HashMap的特性了吧;2、Hashtable不允许key或者value为null;3、...

HashMap刁钻面试题总结1、HashMap的数据结构是什么?答:在jdk1.7是采用了数组+链表;jdk1.8采用了数组+链表+红黑树,当链表长度大于等于的时候转化为红黑树,当红黑树的结点小于等于6的是时候就有红黑树转化为链表;2、为什么要采用数组+链表作为存储结构?首先要清楚一个基本的理论:数组查询效率高,只要给一个数组索引就可以立马找到对应的元素,但是插入、删除的效率低;链表插入、删...

Java集合框架体系总览总的来说,Java集合框架以Collection接口为中心,下属三个重要的子接口,分别是:List(线性表)、Set、Queue(队列),以及还有一个非常重要的Map接口。下面我们分别总结一下每种类型集合下的知识点。一、Collection接口首先我们来看一下Collection接口中的方法:二、Iterable接口Collection接口继承了Iterable接口,...

队列是一种访问受限的线性数据结构,它有两个基本操作:在队列尾部加入元素和从队列头部移除元素。在我们日常开发中,经常用来并发操作数据。java中提供了一些应用比较广泛的特殊队列:一种是以ConcurrentLinkedQueue为代表的非阻塞队列;另一种是以BlockingQueue接口为代表的阻塞队列。一、初识阻塞队列在J.U.C包中提供的BlockingQueue很好的解决了多线程中如何高...

CopyOnWriteArrayList是J.U.C包下的一个并发容器,它是线程安全且读操作无锁的ArrayList,写操作(增删改)则通过将底层数组拷贝一份,更改操作全部在新数组上进行,是一种读写分离的并发策略,我们也可以称这种容器为"写时复制器",Java并发包中类似的容器还有CopyOnWriteArraySet。本文会对CopyOnWriteArrayList的实...