链表共7篇
HashMap的jdk1.7和jdk1.8有什么区别-不念博客

HashMap的jdk1.7和jdk1.8有什么区别

JDK1.8之前采用的是拉链法:将链表和数组相结合。 也就是说创建一个链表数组,数组中每一格就是一个链表。若遇到哈希冲突,则将冲突的值加到链表中即可。 jdk1.8在解决哈希冲突时有了较大的变化...
不念的头像-不念博客不念1年前
439
Hash数据结构的底层实现原理-不念博客

Hash数据结构的底层实现原理

在Redis中,Hash数据结构的底层实现采用了一种称为哈希表(hash table)的数据结构。 具体来说,Redis中的哈希表是一个数组,数组的每个元素都是一个链表的头指针,而链表的节点包含了哈希表中...
不念的头像-不念博客不念1年前
499
哈希冲突解决方法-不念博客

哈希冲突解决方法

分离链接法(Separate Chaining) 在每个哈希表的槽(桶)中维护一个链表、向量或其他数据结构,以存储多个键-值对。 当哈希冲突发生时,新的键-值对被添加到槽中的链表中。这种方法不会影响哈...
不念的头像-不念博客不念1年前
251
b树与b+树的区别-不念博客

b树与b+树的区别

数据存储方式 B树:B树的每个节点既存储数据也存储索引。这意味着B树的非叶子节点既包含索引键也包含对应的数据。 B+树:B+树的非叶子节点仅存储索引键,而数据全部存储在叶子节点。B+树的所有...
不念的头像-不念博客不念1年前
416
数组和链表区别-不念博客

数组和链表区别

存储方式: 数组:数组是一种连续的存储结构,元素在内存中按照线性顺序排列。这使得数组支持随机访问,可以通过索引快速访问任何元素。 链表:链表是一种非连续的存储结构,元素以节点的形式存...
不念的头像-不念博客不念1年前
368
HashMap是如何解决Hash碰撞的问题的?-不念博客

HashMap是如何解决Hash碰撞的问题的?

首先要知道什么是Hash碰撞,通俗的讲就是当两个key运算出来的hash值与数组长度n-1进行与运算之后发现定位出来的位置是一样的。 这就是Hash碰撞、Hash冲突。 HashMap是通过在两个key计算出的同一...
不念的头像-不念博客不念1年前
336
LRU算法和LFU算法有什么区别,redis分别是如何实现的?-不念博客

LRU算法和LFU算法有什么区别,redis分别是如何实现的?

什么是LRU算法? LRU 全称是 Least Recently Used 翻译为最近最少使用,会选择淘汰最近最少使用的数据。 传统 LRU 算法的实现是基于「链表」结构,链表中的元素按照操作顺序从前往后排列,...
不念的头像-不念博客不念2年前
528