算法数据结构
小一明日记
刷题,看源码,人生很短,时间不多
展开
-
hashmap源码-扩容机制
前言注意,本系列文章都是基于 jdk 1.8这是 hashmap 源码系列文章的第三篇,前面文章讲解了 hash 算法,以及元素 put, get 的流程,相信大家对 hashmap 容器已经有了大体上的认识,今天要讲的内容可谓是 hashmap 的重头戏——扩容机制。内容主要涉及:容器扩容负载因子扩容机制容器扩容jdk 中很多容器的底层实现使用的是数组,比如 ArrayList,还有今天要说的 Hashmap。数组的容量是一开始指定好的,为一组连续的内存空间。在实际的开发过程中原创 2020-05-10 18:09:04 · 350 阅读 · 0 评论 -
hashmap源码-元素put,get
前言注意,本系列文章都是基于 jdk 1.8这是 hashmap 源码系列文章的第二篇,前面我们主要讲解了 hashmap 中 hash 算法的实现,本文则是带大家了解元素 get, put 的相关实现,这样一来 hashmap 的大体框架就描绘完毕了。内容主要涉及:hashmap 初始化时机元素 put 流程元素 get 流程初始化时机还记得前面我们提到 hashmap ...原创 2020-04-25 22:30:59 · 162 阅读 · 0 评论 -
hashmap源码-hash算法
前言注意,本系列文章都是基于 jdk 1.8这是 hashmap 源码系列文章的第一篇,主要带大家初步了解 hashmap 几个重要的知识点,在后续的文章中会深入讲解框架中各个部分的实现细节。内容主要涉及:基础结构hashmap 初始化hash 算法扰动函数基础结构hashmap 的基础结构涉及几部分:数组链表红黑树正常情况下 hashmap 元素存取的时间复...原创 2020-04-24 20:48:59 · 404 阅读 · 0 评论 -
leetcode刷题-重建二叉树
题目描述输入某二叉树的前序遍历和中序遍历的结果,请重建该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如,给出前序遍历 preorder = [3,9,20,15,7]中序遍历 inorder = [9,3,15,20,7]返回如下的二叉树: 3 / \ 9 20 / \ 15 7重建二叉树上午在学习广度遍历优先的算法...原创 2020-03-25 20:18:49 · 255 阅读 · 0 评论 -
leetcode刷题-反转链表
题目反转一个单链表。示例:输入: 1->2->3->4->5->NULL输出: 5->4->3->2->1->NULL题目链接:https://leetcode-cn.com/problems/reverse-linked-list/迭代迭代的思路比较简单,反转一个链表,只需要让每个节点指向上一个节点算法思路...原创 2020-03-25 20:16:00 · 120 阅读 · 0 评论