首页
学习
活动
专区
圈层
工具
发布

#链表

为什么jdk1.8之前HashMap是由List+链表组成?

用户1750537

链表是由一系列节点组成的数据结构,每个节点包含一个数据元素和一个指向下一个节点的指针。链表的特点是插入和删除操作比较高效,但是查找操作需要遍历整个链表。

8310

链表与二叉树-数据结构

用户1750537

0 0 0 0 0 1 2 0 0 23 0 0 0 0 0 0 0 0 0 98 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3 ...

4810

Java中的阻塞队列

用户1750537

LinkedBlockingQueue是一个用链表实现的有界阻塞队列。此队列的默认和最大长度为Integer.MAX_VALUE。此队列按照先进先出的原则对元素...

7710

【集合框架HashMap扩容机制】

艾伦耶格尔

本文将带你深入 JDK 源码,从数据结构、扩容流程、参数设计原理到红黑树转换机制,全面剖析 HashMap 的底层实现。

7010

【集合框架HashMap底层原理】

艾伦耶格尔

HashMap 是 Java 集合框架中最核心、最常用的数据结构之一。它基于哈希表实现,提供了接近 O(1) 的平均时间复杂度的 put 和 get 操作。然而...

6810

【集合框架LinkedHashSet底层原理】

艾伦耶格尔

当你描述 "索引3挂了元素2、3" 时,你指的是 HashMap 的桶(bucket)里通过链表(或红黑树)挂载了多个哈希冲突的元素。但 LinkedHashS...

5910

【集合框架LinkedList底层添加元素机制】

艾伦耶格尔

今天,我们将深入 LinkedList 的源码,一步步剖析它作为双向链表的精妙设计。通过这篇解析,你将彻底明白 LinkedList 是如何通过 first 和...

7510

【集合框架Map接口】

艾伦耶格尔

答: HashMap 基于“哈希寻宝法”。put 时,先对 key 计算哈希值,定位到数组的“宝箱”(桶)。如果“宝箱”为空,直接放入;如果冲突,则以链表或红黑...

6810

【初识集合框架】

艾伦耶格尔

👉 想存一堆用户,用数组但长度固定,加人就崩溃? 👉 用 ArrayList 存数据,但 remove() 时索引错乱,数据丢了? 👉 面试官问:“说说 H...

7610

【数据结构进阶】

艾伦耶格尔

红黑树通过着色规则和旋转操作,保证树的近似平衡,查找、插入、删除均为 O(log n)。

7010

【数据结构入门】

艾伦耶格尔

👉 看 ArrayList 源码,说“基于数组”,但数组到底怎么“动态扩容”? 👉 LinkedList 是“链表”,可链表长什么样?为啥插入快? 👉 Ha...

6110

【数据结构与算法】之栈 vs 队列

艾伦耶格尔

栈和队列是计算机科学中最基础也是最常用的两种线性数据结构,它们提供了一种组织和管理数据的方式。它们的主要区别在于元素的添加和删除顺序。理解它们的特点、差异以及底...

10210

【数据结构与算法】之栈详解

艾伦耶格尔

栈(Stack)是一种基本的线性数据结构,遵循后进先出、先进后出的原则。本文将更详细地介绍栈的概念、特点、Java 实现以及应用场景。

6710

【数据结构与算法】之龟兔赛跑算法

艾伦耶格尔

如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。 为了表示给定链表中的环,评测系统内部使用整数 pos 来表示链表尾连接到链表中...

6610

【数据结构与算法】之有序链表去重(不保留重复元素)

艾伦耶格尔

给定一个已排序的单链表的头节点 head,要求去除链表中所有重复的元素,重复元素一个不留,并返回新的头节点。

9310

【数据结构与算法】之有序链表去重(保留重复元素)

艾伦耶格尔

给定一个已排序的单链表的头节点 head,要求去除链表中重复的元素,并返回新的头节点。每个重复元素只保留一个。

5710

【数据结构与算法】之单链表根据值删除元素

艾伦耶格尔

本文详细讲解了如何在非有序单链表中删除指定值的所有节点,并提供了 Java 代码实现和详细的解释。 使用哑节点技巧可以简化代码,并避免边界情况的复杂处理。 无论...

7810

【数据结构与算法】之单链表反转

艾伦耶格尔

头插法是另一种迭代的思路,它模拟了构建新链表的过程。我们将原链表的节点逐个取下,然后插入到新链表的头部。

8810

【数据结构与算法】之链表详解

艾伦耶格尔

链表是一种常用的数据结构,它是一种线性数据结构,但与数组不同,它并非连续存储数据,而是通过指针将数据节点连接起来。每个节点都包含数据域和指向下一个节点的指针域。...

8610

【数据结构与算法】之学习路线

艾伦耶格尔

想要成为一名出色的程序员数据结构是必须要掌握的,掌握了数据结构才能写出实用的算法。总之,学习是循序渐进的,那句话怎么说来着,学无止境。以下学习路线仅供参考哦!

7810
领券