摘要:
前言 首先我们来回顾一下HashMap的一些特点。 1.Node<K,V>是HashMap元素存储的最小单元。 2.Node<K,V>的集合是数组,即Node<K,V>[]。 3.HashMap是线程不安全的。 4.HashMap的迭代的顺序和存储的顺序不一致,即取的顺序和存的顺序不一致的现象。 5 阅读全文
摘要:
前言 在前面的博客中,我写到ArrayList和LinkedList时,他们分别采用数组和双向链表的方式实现,下面我们再一次总结一下, 1.数组,元素顺序插入,寻址快,删除慢,插入慢。 2.双向链表, 元素顺序插入,寻址慢,删除快,插入快。 HashMap就是综合以上两种数据结构的优点,即数组+单向 阅读全文
摘要:
前言 在Object类中,提供了一个native方法,public native int hashCode(),该方法的返回值类型是int类型。 Hash的概念 Hash,一般翻译成“散列”,或者直译为“哈希”,把任意长度的输入x,通过散列算法f(x),变成固定的长度输出,该输出值就是散列码。 1. 阅读全文
摘要:
概述 C/C++语言,在内存管理领域,开发需要对创建的对象进行手工的释放或回收,而在我Java内存管理领域,我们的内存管理交给了虚拟机,在虚拟机的自动内存管理机制调度下,不太容易出现内存泄漏或者内存溢出的问题,然而在不了解虚拟机运作原理的情况下,一旦出现内存泄漏或者内存溢出的问题,将会无从下手分析, 阅读全文
摘要:
前言 上期我介绍了TreeMap的基本结构以及put方法的解读,包括自平衡保持红黑树特性的种种变化, 从代码角度来看,红黑树是否需要自我调整必须满足三个条件, 1.当前结点不是空结点, 2.当前结点不是根节点, 3.当前结点的父结点必须为红色。 本期主要是承接上期Java集合之TreeMap源码解析 阅读全文
摘要:
上期回顾 上期我从树型结构谈到了红黑树的概念以及自平衡的各种变化(指路上期←戳),本期我将会对TreeMap结合红黑树理论进行解读。 首先,我们先来回忆一下红黑树的5条基本规则。 1.结点是红色或者黑色, 2.根结点为黑色, 3.每个叶子结点都是黑色的空结点, 4.每个红色结点的两个子结点都是黑色, 阅读全文
摘要:
原文地址http://www.cnblogs.com/sunshine798798/p/9075848.html,转载请注明出处,谢谢! 树型结构 什么是树型结构呢? 树型结构指的是数据元素之间存在一对多的树型关系的数据结构,是一类非线性的数据结构, 下面先来看一个简单的树型结构图, 从上图,我们可 阅读全文
摘要:
下面我们来看看LinkedList的底层实现, 它继承抽象方法AbstractSequentialList<E>,实现List<E>, Deque<E>, Cloneable, java.io.Serializable接口 它的成员属性有, size表示该集合的元素个数,初始值为0,first指向第 阅读全文
摘要:
下面我们来看看ArrayList的底层实现, ArrayList继承了AbstractList,实现Cloneable、Serializable、RandomAccess接口, 它的成员属性有Object[] elementData 和 int size, 显然底层是以可扩展的数组来存储元素, 新增 阅读全文
摘要:
策略模式的概述 策略模式定义了一组算法,并且将算法封装在持有公共接口的独立类中,每一个算法具有平等性,客户端根据实际的业务选择最合适的算法, 同时,客户端可以轻松的置换任何一种算法。 策略模式的角色 策略模式是对于一组算法的封装,将算法本身与客户端相分离,达到把算法的本身与算法的责任分离开来,交给相 阅读全文