Java(27)集合二List】的更多相关文章

转载请注明源出处:http://www.cnblogs.com/lighten/p/7542578.html 1.前言 一个可伸缩的并发实现,这个map实现了排序功能,默认使用的是对象自身的compareTo方法,如果提供了比较器,使用比较器的比较方法.简单来说ConcurrentSkipListMap是TreeMap的并发实现,但是为什么没有称之为ConcurrentTreeMap呢?这和其自身的实现有关.该类是SkipLists的变种实现,提供了log(n)的时间开销:containsKey…
转载请注明源出处:http://www.cnblogs.com/lighten/p/7283928.html 1.前言 上章讲解了Java中的集合接口和相关实现抽象类,本章开始介绍一些具体的实现类,第一个介绍的就是继承自抽象类AbstractCollection的实现类ArrayDeque,其同时实现了Deque接口.Queue的结构是一个单端的队列,从一端进另一端出,Deque是一个双端队列.而ArrayDeque是一个使用循环数组实现的双端队列了.双端队列可以实现单端队列的先入先出的方式,也…
转载请注明源出处:http://www.cnblogs.com/lighten/p/7551368.html 1.前言 本章介绍剩余的3个集合类:ConcurrentSkipListSet.CopyOnWriteArrayList.CopyOnWriteArraySet.因为这三个集合类的实现都比较简单,就一并描述了.Set相关的两个类不用说,一般都是借助其它集合实现的,所以比较简单,CopyOnWriteArrayList也并不复杂. 2.ConcurrentSkipListSet 该Set集…
转载请注明源出处:http://www.cnblogs.com/lighten/p/7517454.html 1.前言 本章介绍并发队列ConcurrentLinkedDeque,这是一个非阻塞,无锁,无界 ,线程安全双端操作的队列.简单说就是ConcurrentLinkedQueue的升级版,在JDK7之后才提供.该队列也不允许空元素,而且size方法并不是常量时间,其需要遍历链表,此时并发修改链表会造成统计size不正确.同样,bulk操作和equal以及toArray方法不保证原子性. 2…
转载请注明源出处:http://www.cnblogs.com/lighten/p/7515729.html 1.前言 本章介绍阻塞队列SynchronousQueue.之前介绍过LinkedTransferQueue,特点提供了让生产者知道消费者消费了其产出,没消费就等待的模式,本章介绍的这个类则必须是生产者生产后消费者消费了才会继续下去,反之亦然,消费者必须等待生产者产出.SynchronousQueue只有这一种模式,而LinkedTransferQueue是可选的,Synchronous…
转载请注明源出处:http://www.cnblogs.com/lighten/p/7510799.html 1.前言 本章介绍阻塞队列PriorityBlockingQueue.这是一个无界有序的阻塞队列,排序规则和之前介绍的PriorityQueue一致,只是增加了阻塞操作.同样的该队列不支持插入null元素,同时不支持插入非comparable的对象.它的迭代器并不保证队列保持任何特定的顺序,如果想要顺序遍历,考虑使用Arrays.sort(pq.toArray()).该类不保证同等优先级…
转载请注明源出处:http://www.cnblogs.com/lighten/p/7520808.html 1.前言 本章介绍使用的最频繁的并发集合类之一ConcurrentHashMap,之前介绍过HashMap和HashTable,指出了HashTable的问题.虽然可以使用Collections.synchronizedMap方法包装HashMap完成线程安全的Map,但是这样做是远远无法满足我们对性能的需求.因为Map使用频率十分高,键值对在程序中是十分常见的,每一次put或get操作…
转载请注明源出处:http://www.cnblogs.com/lighten/p/7505355.html 1.前言 本章介绍无界的阻塞队列LinkedTransferQueue,JDK7才提供了这个类,所以这个类具备了一些一般队列不具有的特性.此队列也是基于链表的,对于所有给定的生产者都是先入先出的.注意,该队列的size方法和ConcurrentLinkedQueue一样不是常量时间.由于队列的实现,其需要遍历队列才能计算出队列的大小,这期间队列发生的改变,遍历的结果会不正确.bulk操作…
转载请注明源出处:http://www.cnblogs.com/lighten/p/7503678.html 1.前言 本章介绍阻塞队列LinkedBlockingQueue,这是一个基于链表的可选长度的队列,符合链表的先入先出规则.基于链表的队列通常比基于数组的队列有更高的吞吐量,但是在大多数的并发应用中并不能这么预测.可选容量默认大小是Integer.MAX_VALUE. 2.LinkedBlockingQueue 2.1 数据结构 这个结构和LinkedBlockingDeque相似,不过…
作者:季沐测试笔记 原文地址:https://www.cnblogs.com/testero/p/15228435.html 博客主页:https://www.cnblogs.com/testero 1.List集合 1.1List集合概述和特点 List集合概述 有序集合(也称为序列),用户可以精确控制列表中每个元素的插入位置.用户可以通过整数索引访问元素,并搜索列表中的元素 与Set集合不同,列表通常允许重复的元素 List集合特点 有索引 可以存储重复元素 元素存取有序 1.2List集合…