上一篇博客我们介绍了List集合的一种典型实现 ArrayList,我们知道 ArrayList 是由数组构成的,本篇博客我们介绍 List 集合的另一种典型实现 LinkedList,这是一个有链表构成的数组,关于链表的介绍,在这篇博客中 我们也详细介绍过,本篇博客我们将介绍 LinkedList 是如何实现的. 1.LinkedList 定义 LinkedList 是一个用链表实现的集合,元素有序且可以重复. public class LinkedList<E> extends Abstr…
ArrayList实现了Serializable接口,因此它支持序列化,能够通过序列化传输,实现了RandomAccess接口,支持快速随机访问,实际上就是通过下标序号进行快速访问,实现了Cloneable接口,能被克隆. https://www.cnblogs.com/lwen/p/15106367.html https://www.cnblogs.com/maoyali/p/8805975.html https://www.cnblogs.com/LiaHon/p/11089988.html…
JDK1.8源码(五)--java.lang. https://www.cnblogs.com/IT-CPC/p/10897559.html…
一.概述 1.介绍 Arrays 类是 JDK1.2 提供的一个工具类,提供处理数组的各种方法,基本上都是静态方法,能直接通过类名Arrays调用. 二.类源码 1.asList()方法 将一个泛型数组转化为List集合返回.但是,这个List集合既不是ArrayList实例,也不是Vector实例.它是一个固定长度的 List 集合,是 Arrays 的一个内部类 java.util.Arrays.ArrayList. 代码示例:使用 1 public class Main { 2 publi…
java.util.Arrays 类是 JDK 提供的一个工具类,用来处理数组的各种方法,而且每个方法基本上都是静态方法,能直接通过类名Arrays调用. 1.asList public static <T> List<T> asList(T... a) { return new ArrayList<>(a); } 作用是返回由指定数组支持的固定大小列表. 注意:这个方法返回的 ArrayList 不是我们常用的集合类 java.util.ArrayList.这里的 A…
  LinkedList定义 LinkedList 是链表实现的线性表(双链表),元素有序且可以重复. public class LinkedList<E> extends AbstractSequentialList<E> implements List<E>, Deque<E>, Cloneable, java.io.Serializable 蓝色实线箭头是指Class继承关系 绿色实线箭头是指interface继承关系 绿色虚线箭头是指接口实现关系 由…
本篇博客我们来介绍在 JDK1.8 中 HashMap 的源码实现,这也是最常用的一个集合.但是在介绍 HashMap 之前,我们先介绍什么是 Hash表. 1.哈希表 Hash表也称为散列表,也有直接译作哈希表,Hash表是一种根据关键字值(key - value)而直接进行访问的数据结构.也就是说它通过把关键码值映射到表中的一个位置来访问记录,以此来加快查找的速度.在链表.数组等数据结构中,查找某个关键字,通常要遍历整个数据结构,也就是O(N)的时间级,但是对于哈希表来说,只是O(1)的时间…
前面我们介绍了 Map 集合的一种典型实现 HashMap ,关于 HashMap 的特性,我们再来复习一遍: ①.基于JDK1.8的HashMap是由数组+链表+红黑树组成,相对于早期版本的 JDK HashMap 实现,新增了红黑树作为底层数据结构,在数据量较大且哈希碰撞较多时,能够极大的增加检索的效率. ②.允许 key 和 value 都为 null.key 重复会被覆盖,value 允许重复. ③.非线程安全 ④.无序(遍历HashMap得到元素的顺序不是按照插入的顺序) HashMa…
关于 JDK 的集合类的整体介绍可以看这张图,本篇博客我们不系统的介绍整个集合的构造,重点是介绍 ArrayList 类是如何实现的. 1.ArrayList 定义 ArrayList 是一个用数组实现的集合,支持随机访问,元素有序且可以重复. public class ArrayList<E> extends AbstractList<E> implements List<E>, RandomAccess, Cloneable, java.io.Serializabl…
在前面几篇博客分别介绍了这样几种集合,基于数组实现的ArrayList 类,基于链表实现的LinkedList 类,基于散列表实现的HashMap 类,本篇博客我们来介绍另一种数据类型,基于树实现的TreeSet类. 1.TreeMap 定义 听名字就知道,TreeMap 是由Tree 和 Map 集合有关的,没错,TreeMap 是由红黑树实现的有序的 key-value 集合. PS:想要学懂TreeMap的实现原理,红黑树的了解是必不可少的!!! public class TreeMap<…