随笔分类 - Java集合
摘要:前言 首先我们来回顾一下HashMap的一些特点。 1.Node<K,V>是HashMap元素存储的最小单元。 2.Node<K,V>的集合是数组,即Node<K,V>[]。 3.HashMap是线程不安全的。 4.HashMap的迭代的顺序和存储的顺序不一致,即取的顺序和存的顺序不一致的现象。 5
阅读全文
摘要:前言 在前面的博客中,我写到ArrayList和LinkedList时,他们分别采用数组和双向链表的方式实现,下面我们再一次总结一下, 1.数组,元素顺序插入,寻址快,删除慢,插入慢。 2.双向链表, 元素顺序插入,寻址慢,删除快,插入快。 HashMap就是综合以上两种数据结构的优点,即数组+单向
阅读全文
摘要:前言 上期我介绍了TreeMap的基本结构以及put方法的解读,包括自平衡保持红黑树特性的种种变化, 从代码角度来看,红黑树是否需要自我调整必须满足三个条件, 1.当前结点不是空结点, 2.当前结点不是根节点, 3.当前结点的父结点必须为红色。 本期主要是承接上期Java集合之TreeMap源码解析
阅读全文
摘要:上期回顾 上期我从树型结构谈到了红黑树的概念以及自平衡的各种变化(指路上期←戳),本期我将会对TreeMap结合红黑树理论进行解读。 首先,我们先来回忆一下红黑树的5条基本规则。 1.结点是红色或者黑色, 2.根结点为黑色, 3.每个叶子结点都是黑色的空结点, 4.每个红色结点的两个子结点都是黑色,
阅读全文
摘要:下面我们来看看LinkedList的底层实现, 它继承抽象方法AbstractSequentialList<E>,实现List<E>, Deque<E>, Cloneable, java.io.Serializable接口 它的成员属性有, size表示该集合的元素个数,初始值为0,first指向第
阅读全文
摘要:下面我们来看看ArrayList的底层实现, ArrayList继承了AbstractList,实现Cloneable、Serializable、RandomAccess接口, 它的成员属性有Object[] elementData 和 int size, 显然底层是以可扩展的数组来存储元素, 新增
阅读全文

浙公网安备 33010602011771号