Java容器
Java容器的底层代码的理解过程
梵高话葵
这个作者很懒,什么都没留下…
展开
-
TreeSet分析
1. 概述TreeSet是一个有序的集合,它的作用是提供有序的Set集合。它继承了AbstractSet抽象类,实现了NavigableSet,Cloneable,Serializable接口。TreeSet是基于TreeMap实现的,TreeSet的元素支持2种排序方式:自然排序或者根据提供的Comparator进行排序。(1)TreeSet继承于AbstractSet,并且实现了NavigableSet接口。(2)TreeSet是一个包含有序且没有重复元素的集合,通过TreeMap实现。TreeSe原创 2020-09-12 18:37:41 · 353 阅读 · 0 评论 -
LinkedHashSet分析
1. 概述LinkedHashSet内部使用的是LinkHashMap。好处就是LinkedHashSet中的元素顺序是可以保证的,也就是说遍历序和插入序是一致的。public static void main(String[] args) { Object value = new Object(); HashMap<String, Object> hashMap = new HashMap<>(); HashSet<Stri原创 2020-09-12 09:54:46 · 301 阅读 · 0 评论 -
HashSet分析
1. 概述HashSet按Hash算法来存储集合中的元素,因此具有很好的存取和查找性能。底层数据结构是哈希表。哈希表是一个元素为链表的数组HashSet具有以下特点:不能保证元素的排列顺序,顺序可能与添加顺序不同,顺序也可能发生变化;HashSet不是同步的、线程不安全、效率高可以存储null元素元素唯一,元素的唯一性是靠所存储元素类型是否重写hashCode()和equals()方法来保证的,如果没有重写这两个方法,则无法保证元素的唯一性。具体实现唯一性的比较过程:存储元素首先会使用ha原创 2020-09-12 09:42:59 · 490 阅读 · 0 评论 -
LinkedList分析
1. 概述1.1 简介java.lang.Object ↳ java.util.AbstractCollection<E> ↳ java.util.AbstractList<E> ↳ java.util.AbstractSequentialList<E> ↳ java.util.LinkedList<E>public clas原创 2020-09-10 21:45:04 · 132 阅读 · 0 评论 -
Vector和CopyOnWriteArrayList分析
1. Vector1.源码分析public class Vector<E> extends AbstractList<E> implements List<E>, RandomAccess, Cloneable, java.io.Serializable{ //这就是存储数据的数组,注意啦这是一个动态的数组 protected Object[] elementData; //当前元素的个数 protected int原创 2020-09-10 16:52:37 · 1166 阅读 · 0 评论 -
ArrayList分析
1.ArrayList基础属性构造方法public class ArrayList<E> extends AbstractList<E> implements List<E>, RandomAccess, Cloneable, Serializable { // 序列化id private static final long serialVersionUID = 8683452581122892189L; // 默认初始的容量 private static fi原创 2020-09-10 16:20:32 · 133 阅读 · 0 评论