java集合
sugar-foxs
这个作者很懒,什么都没留下…
展开
-
并发集合之CopyOnWriteArryList
并发包中有两个使用CopyOnWrite机制实现的并发容器,它们是CopyOnWriteArrayList和CopyOnWriteArraySet。CopyOnWrite容器是写时复制的容器。也就是说当我们往一个容器添加元素的时候,不直接往当前容器添加,而是先将当前容器Copy出一个新的容器,然后往新的容器里添加元素,添加完元素之后,再将原容器的引用指向新的容器。这样做的好处是我们可以对Cop原创 2017-07-07 22:16:30 · 364 阅读 · 0 评论 -
java集合之HashMap
在jdk1.8中,HashMap用Node数组来存储数据,每个Node元素还有Next节点,当链表长度大于8时,会转换成红黑树,从大于8降到小于6时才转换成链表。原创 2017-07-06 17:47:12 · 245 阅读 · 0 评论 -
java集合之LinkedList
LinkedList是一个双向链表,可以作为堆栈,队列,双端队列使用。原创 2017-07-07 11:20:21 · 159 阅读 · 0 评论 -
阻塞队列之ArrayBlockingQueue
ArrayBlockingQueue是用数组实现的线程安全的有界的阻塞队列。线程安全是指,ArrayBlockingQueue内部通过“互斥锁”保护竞争资源,实现了多线程对竞争资源的互斥访问。而有界,则是指ArrayBlockingQueue对应的数组是有界限的。 阻塞队列,是指多线程访问竞争资源时,当竞争资源已被某线程获取时,其它要获取该资源的线程需要阻塞等待;而且,ArrayBlockin原创 2017-06-20 19:15:51 · 267 阅读 · 0 评论 -
阻塞队列BlockingQueue
BlockingQueue是并发包Concurrent下的阻塞队列,用于多线程。核心方法:放入数据(都不可以加入null):1,boolean add(E e); //队列已满时,返回illlgalStateException;2,boolean offer(E e); //队列已满时,返回false;不可以加入null.有容量限制时优先选择这个方法。3,bool原创 2017-06-20 15:23:35 · 240 阅读 · 0 评论 -
阻塞队列之DelayQueue
public class DelayQueueextends Delayed> extends AbstractQueue implements BlockingQueue public interface Delayed extends Comparable { long getDelay(TimeUnit var1);}DelayQueue是一个BlockingQ原创 2017-06-21 13:39:35 · 217 阅读 · 0 评论 -
java集合之PriorityQueue
1,内部使用数组实现的二叉堆存储元素,初始容量为11.2,通过比较器进行排序.保证堆顶永远为权值最小的元素.3,add()和offer(),在PriorityQueue里是一样的在数组末尾增加元素,然后用siftUpComparable()调整,小于父节点就交换.private void siftUpComparable(int var1, E var2) { Comp原创 2017-06-21 15:52:27 · 210 阅读 · 0 评论 -
阻塞队列之PriorityBlockingQueue
public class PriorityBlockingQueueE> extends AbstractQueueE> implements BlockingQueueE>, java.io.Serializable PriorityBlockingQueue是一个无界的阻塞队列,排序规则和PriorityQueue一样,但只是逻辑上无界,因为尝试添加可能会因资源耗尽(OutOfMe原创 2017-06-22 09:11:58 · 257 阅读 · 0 评论 -
阻塞队列之LinkedBlockingQueue
public class LinkedBlockingQueueE> extends AbstractQueueE> implements BlockingQueueE>, java.io.SerializableLinkedBlockingQueue是一个基于链表的、范围任意的BlockingQueue。此队列按 FIFO(先进先出)排序元素。队列的头部是在队列中时间原创 2017-06-22 10:21:16 · 271 阅读 · 0 评论 -
并发集合之ConcurrentHashMap(jdk1.7)
1,默认初始容量为16,最大容量12,默认负载因子为0.75,3,concurrentHashMap由Segment数组组成,默认初始数量为16,最大为14,ConcurrentHashMap的构造函数如下:/** * Creates a new, empty map with the specified initial * capacity, load factor an原创 2017-07-03 09:27:36 · 288 阅读 · 0 评论 -
java集合之ArrayList
1,ArrayList使用数组Object[ ]存储数据transient Object[] elementData;为什么使用transient修饰呢?transient修饰的成员在序列化时会被忽略,但是传输时数组元素肯定是需要序列化的,那如何去序列化呢?源码中自己实现了序列化,因为数组size一定会比容量小,使用默认序列化的话会将数组中为null的元素也序列化,所以为了节省空间,源原创 2017-07-07 09:26:29 · 175 阅读 · 0 评论