
Java SE
文章平均质量分 85
Rico-Coding
资本要靠自己积累 技术需要自己磨炼
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
(五)LinkedhashMap剖析
一、前言 前面我们已经分析了HashMap的源码,已经知道了HashMap可以用在哪种场合,如果这样一种情形,我们需要按照元素插入的顺序来访问元素,此时,LinkedHashMap就派上用场了,它保存着元素插入的顺序,并且可以按照我们插入的顺序进行访问。 二、LinkedHashMap用法 import java.util.Map; import java.util.LinkedHashMap; public class Test { public static void main(String[原创 2021-01-21 09:14:16 · 423 阅读 · 0 评论 -
(四)HashMap剖析
一、前言 在分析jdk1.8后的HashMap源码时,发现网上好多分析都是基于之前的jdk,而Java8的HashMap对之前做了较大的优化,其中最重要的一个优化就是桶中的元素不再唯一按照链表组合,也可以使用红黑树进行存储,总之,目标只有一个,那就是在安全和功能性完备的情况下让其速度更快,提升性能。好~下面就开始分析源码。 二、HashMap数据结构 说明:上图很形象的展示了HashMap的数据结构(数组+链表+红黑树),桶中的结构可能是链表,也可能是红黑树,红黑树的引入是为了提高效率。所以可见,在分原创 2021-01-21 09:14:06 · 115 阅读 · 1 评论 -
(三)HashSet && LinkedHashSet
HashSet数据结构 老规矩,先上数据结构,因为HashSet底层是基于HashMap 或者 LinkedHashMap实现的,所以HashSet数据结构就是HashMap或者LinkedHashMap的数据结构,因为前面已经分析过了,所以不再累赘。直接看这里, 源码分析 HashSet 1. 类的继承关系 public class HashSet<E> extends AbstractSet<E> implements Set<E>, Cloneabl原创 2021-01-21 09:13:57 · 169 阅读 · 0 评论 -
(二)LinkedList实现原理要点概括
LinkedList数据结构 还是老规矩,先抓住LinkedList的核心部分:数据结构,其数据结构如下 说明:如上图所示,LinkedList底层使用的双向链表结构,有一个头结点和一个尾结点,双向链表意味着我们可以从头开始正向遍历,或者是从尾开始逆向遍历,并且可以针对头部和尾部进行相应的操作。 LinkedList源码分析 类的继承关系 public class LinkedList<E> extends AbstractSequentialList<E> imp原创 2021-01-21 09:13:48 · 163 阅读 · 0 评论 -
(一)ArrayList实现原理要点概括
一、ArrayList数据结构 分析一个类的时候,数据结构往往是它的灵魂所在,理解底层的数据结构其实就理解了该类的实现思路,具体的实现细节再具体分析。 ArrayList的数据结构如下: 说明:底层的数据结构就是数组,数组元素类型为Object类型,即可以存放所有类型数据。我们对ArrayList类的实例的所有的操作底层都是基于数组的。下面我们来分析通过数组是如何保证库函数的正确实现的。 二 源码分析 类的继承关系 public class ArrayList<E> extends Abst原创 2021-01-21 09:13:36 · 149 阅读 · 0 评论 -
java基础-集合底层原理——总体架构
java集合框架主要包括两种类型的集合: 一 Collection 每个位置只能存储一个元素的,它又包括三个子类型:List,Set,Queue List:可以存储重复的数据、有序的,常用的类包括ArrayList和LinkedList ArrayList是基于数组存储数据,其原理是当调用一个add方法,先计算容器的大小 重新new一个新的数组大小 并将当前的数组所有元素复制到这个新的数组中 然后将最新的值放入数组的最后一个 LinkedList是基于双向链表结构存储数据 其原理是链表又一个节点node构成原创 2021-01-20 08:57:34 · 259 阅读 · 0 评论