![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java容器来一发
WalkOffTheEarth
这个作者很懒,什么都没留下…
展开
-
Java容器来一发(一)List
1、List简介List是一种线性的数据结构,Java中对List实现主要有Vector、ArrayList、LinkedList、SynchronizedList等。 Vector和ArrayList都是通过数组实现的,优点是适合随机查找和遍历,不适合频繁插入和删除。 Vector支持线程同步,因此访问开销更大。 LinkedList是用链表结构存储数据,适合动态插...原创 2019-01-01 18:26:12 · 993 阅读 · 0 评论 -
Java容器来一发 --- 目录
Java容器目录Java容器来一发(一)ListJava容器来一发(二)ArrayListJava容器来一发(三)QueueJava容器来一发(四)HashMapJava容器来一发(五)ConcurrentHashMapJava容器来一发(六)Set...原创 2019-01-02 10:30:51 · 354 阅读 · 0 评论 -
Java容器来一发(二)ArrayList
Java容器来一发 --- 目录1、ArrayList代码阅读public class ArrayList<E> extends AbstractList<E> implements List<E>, RandomAccess, Cloneable, java.io.Serializable{ private transien...原创 2019-01-02 10:30:28 · 203 阅读 · 0 评论 -
Java容器来一发(三)Queue
1、阻塞队列和非阻塞队列阻塞队列与非阻塞队列的区别在于,当队列是空的时,从队列中获取元素的操作将会被阻塞,或者当队列是满时,往队列里添加元素的操作会被阻塞。试图从空的阻塞队列中获取元素的线程将会被阻塞,直到其他的线程往空的队列插入新的元素。同样,试图往已满的阻塞队列中添加新元素的线程同样也会被阻塞,直到其他的线程使队列重新变得空闲起来,如从队列中移除一个或者多个元素,或者完全清空队列。pu...原创 2019-01-02 18:28:09 · 287 阅读 · 0 评论 -
Java容器来一发(四)HashMap
1、HashMap基本实现HashMap 的基本数据结构是Entry<K,V>[] table。HashMap在JDK1.8后,如果一个桶上的节点数量过多,基于链表会变成基于数组+红黑树,以提高查找效率,时间复杂度从O(n) 到 O(logn) 。2、HashMap原理利用key的hashCode重新hash计算出当前对象的元素在数组中的下标。存储时,如果出现has...原创 2019-01-02 18:32:06 · 207 阅读 · 0 评论 -
Java容器来一发(五)ConcurrentHashMap
1、ConcurrentHashMap简介ConcurrentHashMap采用了分段锁的设计,只有在同一个分段内才存在竞态关系,不同的分段锁之间没有锁竞争,因此相对于HashMap效率更高。也就是说ConcurrentHashMap可以做到读取数据不加锁,并且其内部的结构可以让其在进行写操作的时候能够将锁的粒度保持地尽量地小,不用对整个ConcurrentHashMap加锁。Concur...原创 2019-01-02 19:01:03 · 266 阅读 · 0 评论