
java集合
skinX
这个作者很懒,什么都没留下…
展开
-
CopyOnWriteArrayList
CopyOnWriteArrayList 是一个线程安全的集合,读写分离,读不加锁,写时复制新数组,在新数组上操作。读取数据时,有可能读到旧数组中数据。如果对象元素很多,拷贝时会很占内存//构造函数,创建一个空数组 public CopyOnWriteArrayList() { setArray(new Object[0]); }~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~原创 2020-12-24 11:24:45 · 136 阅读 · 0 评论 -
LinkedBlockingQueue
LinkedBlockingQueue 是阻塞式的无界队列构造函数,初始化capacity为int最大值,创建头尾节点 public LinkedBlockingQueue() { this(Integer.MAX_VALUE); } public LinkedBlockingQueue(int capacity) { if (capacity <= 0) throw new IllegalArgumentException();原创 2020-12-23 11:39:53 · 172 阅读 · 0 评论 -
ArrayBlockingQueue
/** The queued items */ 存储元素的数组 final Object[] items; /** items index for next take, poll, peek or remove */ 下一次获取元素的下标位置 int takeIndex; /** items index for next put, offer, or add */ 下一次放入元素的下标位置 int putIndex; /** Numb原创 2020-06-08 17:33:06 · 131 阅读 · 0 评论 -
ArrayList
//默认生成的集合大小 private static final int DEFAULT_CAPACITY = 10; //共享的空集合 private static final Object[] EMPTY_ELEMENTDATA = {}; //实际存储的元素 transient Object[] elementData //当前集合元素数量 private int size ...原创 2020-01-03 16:16:19 · 172 阅读 · 0 评论 -
LinkList
linklist 可以作为双向链表,作为栈(push、pop),作为双向队列(offerFirst、offerLast、pollFirst、pollLast) //链表长度 transient int size = 0; //链表头指针 transient Node<E> first; //链表尾指针 transient Node<E> last;//构造函数...原创 2020-01-07 11:26:17 · 588 阅读 · 0 评论 -
PriorityQueue
数组容纳元素 transient Object[] queue 队列中元素的数量 int size; 构造函数,容量默认为11 public PriorityQueue() { this(DEFAULT_INITIAL_CAPACITY, null); } 添加元素 public boolean add(E e) { return offer(e); } 元素为null,抛出异常 public boolean o.原创 2020-12-17 13:36:46 · 112 阅读 · 0 评论