特点:有序链表实现,无锁实现,value不能为空,层级越高跳跃性越大,数据越少,理论上查询变快。 新的node是否抽出来作为index,随机决定; index的level由随机数决定(随机数比特位连续为1的数量) 每层的元素,headIndex固定为所有node中最小的 查找数据时,按照从上到下,从 ...
分类:
其他好文 时间:
2019-01-13 21:08:03
阅读次数:
147
1、底层数据结构: JDK1.7的ConcurrentHashMap底层使用分段的数据+链表实现,JDK1.8采用的数据结构和HashMap1.8的结构一样。数据+链表/红黑二叉树。 Hashttable和JDK1.8之前的HashMap的底层数据结构类似都是采用数据+链表的形式,数组是HashMa ...
分类:
其他好文 时间:
2019-01-11 17:24:20
阅读次数:
146
一个简单的Java单向链表实现,甚至还帮你写了反转链表的函数,应付Java初级面试够够的。 ...
分类:
编程语言 时间:
2019-01-11 13:17:06
阅读次数:
230
一个简单的Java双向链表实现,甚至还帮你写了反转链表的函数,应付Java初级面试够够的。 ...
分类:
编程语言 时间:
2019-01-11 13:15:40
阅读次数:
382
一 List List继承collection,有序,元素可重复。 实现类: ArrayList,数组方式实现的,是线程不安全的;Vector 是线程安全的;LinkedList 是线程不安全的,底层是由链表实现的 。 ArrayList与LinkedList在效率上有些互补,LinkedList进 ...
分类:
编程语言 时间:
2019-01-11 13:13:03
阅读次数:
207
用链表来实现堆栈的优点是随时可以动态改变链表的长度,能够有效利用内存资源,缺点就是设计的算法比较复杂 判断链表是否为空 将指定的数据压入堆栈 从堆栈弹出数据 再来看一个例子用链表实现堆栈操作 ...
分类:
其他好文 时间:
2019-01-06 00:35:19
阅读次数:
134
LinkedHashMap 简介 hash表和链表实现了map接口,迭代顺序是可以预测的。LinkedHashMap和HashMap的不同是它所有的entry 维持了一个双向链表结构。该链表定义了通常迭代顺序是键插入的顺序。 LinkedHashMap 定义 public class LinkedH ...
分类:
编程语言 时间:
2019-01-05 16:43:26
阅读次数:
216
25 个人围成一个圈,从第1个人开始顺序报号,凡报号为3和3的倍数者退出圈子,找出最后留在圈子中的人原来的序号。 要求:用链表实现。报到3或3的倍数的结点删除; 提示:(1)需要将链表首尾相接形成环形; (2)删除时注意头、尾结点的特殊处理; (3)注意循环结束的条件; ...
分类:
其他好文 时间:
2019-01-01 12:34:33
阅读次数:
278
1.描述:实质是一种受到限制的表,即插入删除只能在表的末端,能够实现LIFO(后进先出) 2.栈的实现 链表实现(链栈) 数组实现(顺序栈) 3.链栈 创建一个空栈 测试栈是否为空 从栈顶弹出元素 返回栈顶元素(不弹出,不改变栈顶指针),遇到空栈将返回异常 清空栈(同时销毁物理内存) 压栈 遍历栈 ...
分类:
编程语言 时间:
2018-12-31 18:59:04
阅读次数:
240