集合类
nowseeme
这个作者很懒,什么都没留下…
展开
-
Map实现类细节
一、概述原创 2017-04-25 23:30:35 · 273 阅读 · 0 评论 -
HashCode和hash值
一、概述原创 2017-04-25 23:34:07 · 872 阅读 · 1 评论 -
Map总结
一、总结原创 2017-04-25 23:35:24 · 256 阅读 · 0 评论 -
List接口及基础
一、概述原创 2017-04-25 23:37:14 · 353 阅读 · 0 评论 -
List接口实现类(1):ArrayList
ArrayList是实现List接口的动态数组,所谓动态就是它的大小是可变的。原创 2017-04-25 23:38:45 · 557 阅读 · 0 评论 -
List接口实现类(2):LinkedList
LinkedList 是一个继承于AbstractSequentialList的双向链表。它也可以被当作堆栈、队列或双端队列进行操作。LinkedList实现了所有的列表操作,允许所有的元素(包括空元素)。LinkedList所有的操作都是在对双向链表操作,LinkedList不是线程安全的。Collections.synchronizedList方法可以实现线程安全的操作。原创 2017-04-25 23:40:02 · 346 阅读 · 0 评论 -
List接口实现类(3):CopyOnWriteArrayList
Copy-On-Write简称COW,是一种用于程序设计中的优化策略。其基本思路是,当想要对一块内存进行修改时,不在原有内存块中进行写操作,而是将内存拷贝一份,在新的内存中进行写操作,写完之后,就将指向原来内存指针指向新的内存,原来的内存就可以被回收掉。原创 2017-04-25 23:41:07 · 586 阅读 · 0 评论 -
List接口实现类(4):Vector
一、概述原创 2017-04-25 23:41:55 · 358 阅读 · 0 评论 -
List总结
一、概述原创 2017-04-25 23:43:05 · 286 阅读 · 0 评论 -
HashSet
基于JDK7一、概述HashSet 是一个没有重复元素的集合。底层是由HashMap实现的,不保证元素的顺序。HashSet允许使用 null 元素。public class HashSet<E> extends AbstractSet<E> implements Set<E>, Cloneable, java.io.Seri...原创 2017-03-17 13:48:33 · 322 阅读 · 0 评论 -
HashMap:基于jdk8
jdk8采用 数组 + 链表 + 红黑树 的存储结构原创 2017-04-10 01:50:54 · 347 阅读 · 0 评论 -
Hashtable
一.概述1.定义Hashtable类实现一个哈希表,该哈希表将键映射到相应的值。任何非 null 对象都可以用作键或值。为了成功地在哈希表中存储和获取对象,用作键的对象必须实现 hashCode 方法和 equals 方法。 HashMap是Hashtable的轻量级实现。 Hashtable定义:public class Hashtable<K,V> ...原创 2017-03-17 13:47:21 · 631 阅读 · 0 评论 -
集合细节(3)
一、概述原创 2017-04-30 23:51:03 · 339 阅读 · 0 评论 -
HashMap(2): EntrySet、KeySet实现原理
一.概述HashMap里面保存的数据最底层是一个Entry型的数组,这个Entry则保留了一个键值对,还有一个指向下一个Entry的指针。所以HashMap是一种结合了数组和链表的结构。因此,我们有3种对数据的观测方式:keySet,values,entrySet。keySet是从key的值角度出发的结果。它里面包含了这个键值对表里面的所有键的值的集合,因为HashMap明确规定一个键只能对应一个值原创 2017-03-16 19:39:29 · 2369 阅读 · 1 评论 -
LinkedHashMap
所谓LinkedHashMap,其落脚点在HashMap,因此更准确地说,它是一个将所有Entry节点链入一个双向链表双向链表的HashMap。在LinkedHashMapMap中,所有put进来的Entry都保存在如下面第一个图所示的哈希表中,但由于它又额外定义了一个以head为头结点的双向链表,因此对于每次put进来Entry,除了将其保存到哈希表中对应的位置上之外,还会将其插入到双向链表的尾部原创 2017-03-17 13:49:07 · 363 阅读 · 0 评论 -
ConcurrentHashmap:基于jdk7
JDK1.7下的ConcurrentHashMap首先将数据分成一段一段(segment)的存储,然后给每一段数据配一把锁,当一个线程占用锁访问其中一个段数据的时候,其他段的数据也能被其他线程访问。ConcurrentHashMap内部分为很多个Segment,每一个Segment拥有一把锁,然后每个Segment(继承ReentrantLock)下面包含很多个HashEntry列表数组。原创 2017-04-10 01:45:57 · 397 阅读 · 0 评论 -
ConcurrentHashmap:基于jdk8
JDK1.8中的ConcurrentHashMap 放弃了1.7版本中Segment臃肿的设计,取而代之的是采用来保证并发安全进行实现。ConcurrentHashMap作为Concurrent一族,其有着高效地并发操作,相比Hashtable的笨重,ConcurrentHashMap则更胜一筹了。 在1.8版本以前,ConcurrentHashMap采用分段锁的概念,使锁更加细化,但是1.8已经改变了这种思路,而是利用Node + CAS + Synchronized 来保证并发更新的安全,底层采用数组原创 2017-04-10 01:47:21 · 375 阅读 · 0 评论 -
集合总结(1)
一、概述原创 2017-04-30 23:47:01 · 317 阅读 · 0 评论 -
集合总结(2)
一、概述原创 2017-04-30 23:47:43 · 300 阅读 · 0 评论 -
集合总结(3)
一、概述原创 2017-04-30 23:48:37 · 310 阅读 · 0 评论 -
集合细节(1)
一、概述原创 2017-04-30 23:49:33 · 345 阅读 · 0 评论 -
集合细节(2)
一、概述原创 2017-04-30 23:50:21 · 328 阅读 · 0 评论 -
HashMap:基于jdk7
一.基础1.概述HashMap 是基于哈希表的 Map 接口的非同步实现。此实现提供所有可选的映射操作,并允许使用 null 键和null 值 。此类不保证映射的顺序,特别是它不保证该顺序恒久不变。 HashMap继承AbstractMap,实现了Map接口。原创 2017-03-12 14:39:46 · 398 阅读 · 0 评论