java容器系列
oural
这个作者很懒,什么都没留下…
展开
-
java容器系列之 ------------ HashMap的实现原理
HashMap的实现原理在JDK1.8的时候有做一些修改。JDK1.7的时候HashMap是hash表加链表的数据结构,如果通过key计算出来的hash值出现了hash碰撞,就将node添加到链表中,直到hash表需要扩容的时候,再进行rehash。JDK7的数据结构如下图:JDK1.8中针对之前的HashMap的结构,做了优化,因为之前的结构中是有缺陷的。在JDK1.7中,有一种极端情况,就是如果所有数据都有相同的hash值,那么所有数据都在一个链表中,这是时间复杂度就是O(n)。所以,在原创 2021-11-13 15:32:10 · 547 阅读 · 0 评论 -
java容器系列之 ------------ Hashtable的实现原理
Hashtable的数据结构其实就是一个hash表(数组),然后hash表中存的是entry,entry是key,value的映射。结构如图:下面是Hashtable的源码:1、添加数据的源码:// 1、首先这个方法是上锁了的,所以Hashtable是线程安全的,但是进行组合调用就不是线程安全的了public synchronized V put(K key, V value) { // 2、判断添加的value是不是为空,为空则抛出异常,说明:Hashtabl.原创 2021-11-12 14:56:43 · 317 阅读 · 0 评论 -
java容器系列之 ------------ hash集合
1、HashSethashset的内部是通过hashmap实现的,将值存为key,将value存为Object对象2、HashMap(1)几个重要参数:initial capacity、load factor、threshold=capacity * load factor、capacity /** * 这是默认的capacity,capacity是...原创 2020-03-19 17:09:06 · 282 阅读 · 0 评论 -
java容器系列之 ------------ 普通容器
目录2、Iterable接口3、一些重要的容器实现类4、List容器分析(1)Vector(2)Stack(3)ArrayList(4)LinkedList5、Hash6、Set容器分析(1)HashSet(2)TreeSet(3)LinkedHashSet7、分析Map容器(1)HashMap(2)TreeMap(3)LinkedH...原创 2019-07-15 21:51:34 · 210 阅读 · 0 评论