摘要:
什么是 Hash Hash(哈希),又称“散列”。 散列(hash)英文原意是“混杂”、“拼凑”、“重新表述”的意思。 在某种程度上,散列是与排序相反的一种操作,排序是将集合中的元素按照某种方式比如字典顺序排列在一起,而散列通过计算哈希值,打破元素之间原有的关系,使集合中的元素按照散列函数的分类进行
阅读全文
posted @ 2019-05-22 18:57
spencerli
阅读(112)
推荐(0)
摘要:
读完本文你将了解到: 点击查看 Java 集合框架深入理解 系列 - - 乾杯 传统 HashMap 的缺点 HashMap 在 JDK 18 中新增的数据结构 红黑树 HashMap 中关于红黑树的三个关键参数 HashMap 在 JDK 18 中新增的操作桶的树形化 treeifyBin Has
阅读全文
posted @ 2019-05-22 18:54
spencerli
阅读(163)
推荐(0)
摘要:
读完本文你将了解到: 点击查看 Java 集合框架深入理解 系列 - - 乾杯 什么是 HashMap HashMap 的特点 HashMap 的 13 个成员变量 HashMap 的初始容量和加载因子 HashMap 的关键方法 HashMap 的 4 个构造方法 HashMap 中的链表节点 H
阅读全文
posted @ 2019-05-22 18:48
spencerli
阅读(80)
推荐(0)
摘要:
什么是 AbstractMap AbstractMap 是 Map 接口的的实现类之一,也是 HashMap, TreeMap, ConcurrentHashMap 等类的父类。 AbstractMap 提供了 Map 的基本实现,使得我们以后要实现一个 Map 不用从头开始,只需要继承 Abstr
阅读全文
posted @ 2019-05-22 18:42
spencerli
阅读(137)
推荐(0)
摘要:
<!-- flowchart 箭头图标 勿删 --> 什么是 Map Java 中的 Map 接口 是和 Collection 接口 同一等级的集合根接口,它 表示一个键值对 (key-value) 的映射。类似数学中 函数 的概念。 数学中的函数: 一个 Map 中,任意一个 key 都有唯一确定
阅读全文
posted @ 2019-05-22 18:38
spencerli
阅读(51)
推荐(0)
摘要:
数据结构中的 栈 数据结构中,栈是一种线性数据结构,遵从 LIFO(后进先出)的操作顺序,所有操作都是在顶部进行 有点像羽毛球筒: 栈通常有三种操作: push 入栈 pop 栈顶元素出栈,并返回 peek 获取栈顶元素,并不删除 我们自定义一个 栈 时只要实现上述三个主要操作即可,本文中将使用 J
阅读全文
posted @ 2019-05-22 18:37
spencerli
阅读(93)
推荐(0)
摘要:
都说 Vector 是线程安全的 ArrayList,今天来根据源码看看是不是这么相似。 什么是 Vector Vector 和 ArrayList 一样,都是继承自 AbstractList。它是 Stack 的父类。英文的意思是 “矢量”。 Vector 成员变量 1.底层也是个数组 2.数组元
阅读全文
posted @ 2019-05-22 18:33
spencerli
阅读(37)
推荐(0)
摘要:
日常开发中,保存一组数据使用的最多的就是 ArrayList, 其次就是 LinkedList 了。 我们知道 ArrayList 是以数组实现的,遍历时很快,但是插入、删除时都需要移动后面的元素,效率略差些。 而LinkedList 是以链表实现的,插入、删除时只需要改变前后两个节点指针指向即可,
阅读全文
posted @ 2019-05-22 18:28
spencerli
阅读(92)
推荐(0)
摘要:
<!-- flowchart 箭头图标 勿删 --> 什么是 Deque Deque 是 Double ended queue (双端队列) 的缩写,读音和 deck 一样,蛋壳。 Deque 继承自 Queue,直接实现了它的有 LinkedList, ArayDeque, ConcurrentL
阅读全文
posted @ 2019-05-22 18:23
spencerli
阅读(67)
推荐(0)
摘要:
什么是队列 队列是数据结构中比较重要的一种类型,它支持 FIFO,尾部添加、头部删除(先进队列的元素先出队列),跟我们生活中的排队类似。 队列有两种: 单队列 循环队列 单队列就是常见的队列, 每次添加元素时,都是添加到队尾: 以数组实现的队列为例,初始时队列长度固定为 4,font 和 rear
阅读全文
posted @ 2019-05-22 18:21
spencerli
阅读(100)
推荐(0)
摘要:
AbstractSequentialList 没有什么特别的,这里介绍是为了理解 LinkedList 更容易。 什么是 AbstractSequentialList ( Sequential 相继的,按次序的) AbstractSequentialList 继承自 AbstractList,是 L
阅读全文
posted @ 2019-05-22 18:19
spencerli
阅读(75)
推荐(0)
摘要:
什么是 ArrayList ArrayList 是 Java 集合框架中 List接口 的一个实现类。 可以说 ArrayList 是我们使用最多的 List 集合,它有以下特点: 容量不固定,想放多少放多少(当然有最大阈值,但一般达不到) 有序的(元素输出顺序与输入顺序一致) 元素可以为 null
阅读全文
posted @ 2019-05-22 18:08
spencerli
阅读(174)
推荐(0)
摘要:
什么是 AbstractList AbstractList 继承自 AbstractCollection 抽象类,实现了 List 接口 ,是 ArrayList 和 AbstractSequentiaList 的父类。 它实现了 List 的一些位置相关操作(比如 get,set,add,remo
阅读全文
posted @ 2019-05-22 18:00
spencerli
阅读(115)
推荐(0)
摘要:
什么是 AbstractCollection AbstractCollection 是 Java 集合框架中 Collection 接口 的一个直接实现类, Collection 下的大多数子类都继承 AbstractCollection ,比如 List 的实现类, Set的实现类。 它实现了一些
阅读全文
posted @ 2019-05-22 17:47
spencerli
阅读(141)
推荐(0)
摘要:
<!-- flowchart 箭头图标 勿删 --> List 接口 一个 List 是一个元素有序的、可以重复、可以为 null 的集合(有时候我们也叫它“序列”)。 Java 集合框架中最常使用的几种 List 实现类是 ArrayList,LinkedList 和 Vector。在各种 Lis
阅读全文
posted @ 2019-05-22 16:20
spencerli
阅读(107)
推荐(0)
摘要:
什么是集合? 集合,或者叫容器,是一个包含多个元素的对象; 集合可以对数据进行存储,检索,操作; 它们可以把许多个体组织成一个整体: 比如一副扑克牌(许多牌组成的集合); 比如一个电话本(许多姓名和号码的映射)。 比如一副扑克牌(许多牌组成的集合); 比如一个电话本(许多姓名和号码的映射)。 什么是
阅读全文
posted @ 2019-05-22 15:54
spencerli
阅读(75)
推荐(0)
摘要:
Java 集合源码解析(2):ListIterator ListIterator 根据官方文档介绍, ListIterator 有以下功能: 允许我们向前、向后两个方向遍历 List; 在遍历时修改 List 的元素; 遍历时获取迭代器当前游标所在位置。 注意,迭代器 没有当前所在元素一说,它只有一
阅读全文
posted @ 2019-05-22 15:42
spencerli
阅读(94)
推荐(0)
摘要:
上传服务器,使用./gradlew sonarqube命令,需要到工程根目录 参考链接: https://blog.csdn.net/huo108/article/details/81194517 https://www.zybuluo.com/hedewen2007/note/1378670? t
阅读全文
posted @ 2019-05-22 15:27
spencerli
阅读(217)
推荐(0)
摘要:
Java 提供的 集合类都在 Java.utils 包下,其中包含了很多 List, Set, Map, Queue… 它们的关系如下面这张类图所示: 可以看到,Java 集合主要分为两类:Collection 和 Map. 而 Collection 又继承了 Iterable< E > 接口,It
阅读全文
posted @ 2019-05-22 14:44
spencerli
阅读(79)
推荐(0)