Java容器
NVPS_wyj
这个作者很懒,什么都没留下…
展开
-
Java容器之LinkedList
LInkedList是一条双向链表,使用Node存储链表节点信息。定义: private static class Node<E> { E item; Node&amp原创 2018-10-13 15:15:15 · 109 阅读 · 0 评论 -
Java容器之Vector
Vector的实现与 ArrayList 类似,但是使用了 synchronized 进行同步,所以是线程安全的,扩容大小为2倍,ArrayList为1.5倍。原创 2018-10-13 15:54:57 · 251 阅读 · 0 评论 -
Java容器之HashMap
HashMap是用来存储key-value键值对的一个集合,每一个键值对也叫做Entry,HashMap底层是基于数组+链表实现的。1. put方法将传入的key进行hashCode操作得到哈希值并根据HashMap数组长度进行取模运算得到index若key已经存在,则更新值;若不存在,则插入key-value2. get方法3. 扩容机制4. 链表转红黑树...原创 2018-10-07 17:30:17 · 143 阅读 · 0 评论 -
Java容器之ConcurrentHashMap
ConcurrentHashMap是一个线程同步的容器,它的存储结构和HashMap类似,最大的差别是ConcurrentHashMap加上了分段锁(Segment)机制,每个Segment维护几个Entry。多个线程可以同时访问不同Segment上的数据,使之并发度更高。1.Segment//继承ReentrantLock(可重入锁)static class Segment<K,V&...原创 2018-10-14 15:12:45 · 137 阅读 · 0 评论 -
Java容器之ArrayList
ArrayList是一个动态数组,它的容量能自动增长。ArrayList中的方法不是同步的,所以不适合在多线程中使用,可以用CopyOnWriteArrayList替代ArrayList在多线程环境中使用。...原创 2018-10-10 18:19:50 · 186 阅读 · 0 评论 -
fail-fast机制
以ArrayList为例演示fail-fast事件,ArrayList的操作不是同步的,所以在多线程环境下可能会出现异常。fail-fastfail-fast是java集合中的一中错误机制,当多条线程对同一个集合的内容进行操作时,便会触发fail-fast机制。List item...原创 2018-10-10 19:06:19 · 112 阅读 · 0 评论