在JDK1.6,JDK1.7中,HashMap采用位桶+链表实现,即使用链表处理冲突,同一hash值的链表都存储在一个链表里。但是当位于一个桶中的元素较多,即hash值相等的元素较多时,通过key值依次查找的效率较低。而JDK1.8中,HashMap采用位桶+链表+红黑树实现,当链表长度超过阈值(8 ...
分类:
其他好文 时间:
2020-01-08 10:32:13
阅读次数:
65
队列是一个有序列表, 可以使用数组实现, 也可以使用链表实现 队列遵守先进先出的原则 1. 下面使用数组模拟一个队列 public class ArrayQueueDemo { public static void main(String[] args) { ArrayQueue queue = n ...
分类:
编程语言 时间:
2020-01-01 10:22:10
阅读次数:
84
1、五种阻塞队列介绍 ArrayBlockingQueue 有界队列,底层使用数组实现,并发控制使用ReentrantLock控制,不管是插入操作还是读取操作,都需要获取锁之后才能执行。 LinkedBlockingQueue 底层基于单向链表实现,既可以当做有界队列,也可以当做无界队列使用。使用两 ...
分类:
编程语言 时间:
2019-12-18 23:34:53
阅读次数:
125
一种可以实现" 先进先出 "的存储结构 分类: 1. 链式队列:用链表实现 2. 静态队列:用数组实现,静态队列通常都必须是 循环队列 循环队列的讲解: 1. 静态队列为什么是循环队列 减少对内存的浪费 2. 循环队列需要几个参数来确定 两个参数, frant 、rear 但这2个参数不同场合有不同 ...
分类:
其他好文 时间:
2019-12-15 21:54:28
阅读次数:
97
前言: 有序列表,允许存放重复的元素;实现类: ArrayList:数组实现,查询快,增删慢,轻量级;(线程不安全) LinkedList:双向链表实现,增删快,查询慢 (线程不安全) Vector:数组实现,重量级 (线程安全、使用少) Stack:对象栈,遵循先进后出的原则。 一、ArrayLi ...
分类:
编程语言 时间:
2019-12-15 21:48:38
阅读次数:
88
最久未使用算法和最少次数算法 参考 "LRU算法 缓存淘汰策略" "缓存算法(FIFO 、LRU、LFU三种算法的区别)" LRU算法(最久未使用算法) 当数据满时,淘汰最久未使用的数据。该算法需要获取所有缓存数据中最久未使用的数据。 链表实现 1. 创建一个固定大小的链表,数据首次被访问,插入到链 ...
分类:
编程语言 时间:
2019-12-13 19:46:39
阅读次数:
119
概念 将单链表的终端节点的指针由原来的空指针改为指向头节点, 就是整个单链表形成一个环, 这种首尾相接的单链表称为单循环链表. 实现 ...
分类:
编程语言 时间:
2019-12-13 14:00:33
阅读次数:
91
拉链表测试: 有如下测试数据 --2019/12/1号订单的全量数据 id status create_time operation_time 1 待支付 2019-12-01 2 待支付 2019-12-01 3 已支付 2019-12-01 --2019/12/2号订单的全量数据 id stat ...
分类:
其他好文 时间:
2019-12-12 17:55:34
阅读次数:
164
1 // ConsoleApplication1.cpp : 定义控制台应用程序的入口点。 2 // 3 4 #include "stdafx.h" 5 #include"iostream" 6 using namespace std; 7 8 typedef int data; 9 10 type ...
分类:
编程语言 时间:
2019-12-11 00:47:42
阅读次数:
93