Java集合
ZHAOJING1234567
这个作者很懒,什么都没留下…
展开
-
【搞定Java基础-集合】第十篇:Java 集合类总结篇
目录序言:Collection一、List 总结篇1、List 接口描述2、使用场景3、区别3.1Aarraylist 和 Linkedlist3.2 Vector 和 ArrayList 的区别二、Map 总结篇2.0 HashMap 和TreeMap的不同点2.1、Map 概述2.2、内部哈希:哈希映射技术2.3 Map 优化2....原创 2019-05-18 23:14:38 · 465 阅读 · 0 评论 -
【搞定Java基础-集合】 第八篇:HashSet、TreeSet、LinkedHashSet
本文转发自:https://blog.csdn.net/a724888/article/details/80295328今天我们来探索一下HashSet,TreeSet与LinkedHashSet的基本原理与源码实现,由于这三个 Set 都是基于之前文章的三个 Map 进行实现的,所以推荐大家先看一下前面有关 Map 的文章,结合使用味道更佳。Collection 集合框架图1、H...转载 2019-05-17 17:58:12 · 167 阅读 · 0 评论 -
【搞定Java基础-集合】第七篇 TreeMap 和红黑树
目录1、红黑树简介2、TreeMap 的数据结构3、TreeMap 的 put() 方法3.1 红黑树增加节点一. 为根节点二. 父节点为黑色三. 若父节点 P 和 P 的兄弟节点 U 都为红色四. 若父节点 P 为红色,叔父节点 U 为黑色或者缺少,且新增节点 N 为 P 节点的右孩子五. 父节点 P 为红色,叔父节点 U 为黑色或者缺少,新增节点 N 为父...转载 2019-05-17 16:48:25 · 204 阅读 · 0 评论 -
【搞定Java基础-集合】第六篇:深入理解 LinkedHashMap 和 LRU 缓存
目录摘要:HashMap 和双向链表合二为一即是 LinkedHashMap友情提示1、LinkedHashMap 概述2、LinkedHashMap 在 JDK 中的定义2.1 类结构定义2.2 成员变量定义:增加了两个独有属性:双向链表头结点 header 和 迭代顺序标志位accessOrder【true=按访问顺序排序,false=按插入顺序排序(默认)...转载 2019-05-17 14:38:56 · 329 阅读 · 0 评论 -
【搞定Java基础-集合】第五篇:Iterator、fail-fast 机制与比较器 Comparator & Comparable
转载自:https://blog.csdn.net/pcwl1206/article/details/864938961、Iterator:Iterator模式是用于遍历集合类的标准访问方法。它可以把访问逻辑从不同类型的集合类中抽象出来,从而避免向客户端暴露集合的内部结构该部分内容参考自:http://cmsblogs.com/?p=1185迭代对于我们搞Java的来说绝对不陌生。我们...转载 2019-05-17 09:39:11 · 160 阅读 · 0 评论 -
【搞定Java基础-集合篇】第四篇 Java8-HashMap和ConCurrentHashMap
文章目录一、Java8-HashMap源码【2倍扩容】1.1 数据结构【数组+链表+红黑树,当链表元素超过了 8 个,会将链表转换为红黑树,降低查找的时间复杂度为 O(logN)。】【Java7: Entry,Java8 使用 Node来代表每个 HashMap 中的数据节点,,基本没有区别,都是 key,value,hash 和 next 这四个属性,不过,Node 只能用于链表的情况,红黑树的...转载 2019-05-15 22:43:01 · 391 阅读 · 0 评论 -
【搞定Java基础 - 集合篇】第一篇:Java 集合框架梳理
目录1、Java 集合框架概览2、Collection 接口3、List 接口3.1、ArrayList3.2、LinkedList3.3、Vector3.4、Stack4、Set 接口3.1、EnumSet3.2、HashSet3.3. TreeSet4、Map4.1、HashMap4.2、TreeMap4.3、HashTa...转载 2019-05-15 15:16:19 · 179 阅读 · 0 评论 -
【搞定Java基础-集合篇】第二篇 源码ArrayList、LinkedList和Vector的区别
文章目录1、ArrayList、LinkedList、HashMap中都有一个字段叫modCount(表示list结构上被修改的次数。)1.1 该字段被Iterator以及ListIterator的实现类所使用,如果该值被意外更改,Iterator或者ListIterator 将抛出ConcurrentModificationException异常一、ArrayList源码分析1.1 ArrayL...转载 2019-05-15 15:17:39 · 215 阅读 · 0 评论 -
【搞定Java基础 - 集合篇】第三篇、源码Java7 -HashMap、HashTable、ConCurrentHashMap
文章目录一、java7-HashMap源码1.1 数据结构:hashMap :Entry数组+链表 【扩容后数组大小为当前的 2 倍。】1.2 put(K key, V value)添加数据,是插入表头,key 为 null,放到 table[0] 中,会modcount++1)当插入第一个元素的时候,需要先初始化数组大小,保证数组大小一定是 2 的 n 次方。2)求 key 的 hash 值3)...转载 2019-05-15 20:17:17 · 311 阅读 · 0 评论 -
【搞定Java基础-集合】JDK1.7 HashMap 在高并发下引起的死循环
目录一、resize()简介二、正常的 resize 过程 【其实就是每次先把next存下,然后对e(当前节点)重hash】三、并发下的 resize总结与JDK 8 的改进为什么线程不安全转载自:https://www.jianshu.com/p/619a8efcf589一、resize()简介新建一个更大尺寸的 hash 表,然后把数据从老的 Hash 表中迁移...转载 2019-05-19 23:09:52 · 1016 阅读 · 0 评论 -
HashMap的插入和查找的理想复杂度为O(1)
hashmap容器O(1)的查找时间复杂度只是其理想的状态,而这种理想状态需要由java设计者去保证 在由设计者保证了链表长度尽可能短的前提下,由于利用了数组结构,使得key的查找在O(1)时间内完成 可以将hashmap分成两部分来看待,hash和map。map只是实现了键值对的存储,也就是以上查询步骤的第4步。而其整个O(1)的查找复杂度很大程度上是由hash来保证的。 hashmap对...转载 2019-05-19 07:59:53 · 2773 阅读 · 0 评论 -
【搞定Java基础-集合】第九篇:Java 集合类细节精讲
本文主要讲述 Java 集合类中的一些细节。主要包括:指定集合的初始容量、asList 的缺陷、subList 的缺陷 和 保持 compareTo 和 equals 的同步。1、请为集合指定初始容量本部分内容转发自:http://cmsblogs.com/?p=1226集合是我们在 Java 编程中使用非常广泛的,它就像大海,海纳百川,像万能容器,盛装万物,而且这个大海,万能容...转载 2019-05-17 21:53:22 · 183 阅读 · 0 评论