![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构
kyoshii
爱coding,爱生活
展开
-
jdk8源码中hashmap的简单分析
你能说一说为什么实现equals方法的时候需要实现hashcode吗,读过hashmap的源码吗 面试的时候面试官可能会问你hashmap的实现原理,在这里我以一种简单而形象的表达说一下hashmap的主要实现。 首先,让我们联想一下hashmap的结构,这里可以先给一张结构图 可以看到hashmap里面的主要存储结构是table数组,数组里面存放的可以是单一的节点,也可以是链表节点...原创 2018-12-30 16:59:32 · 123 阅读 · 0 评论 -
leecode题解,实现一个简单的栈结构
栈是一个很重要的数据结构,在计算机应用里也经常能看到栈的身影,比如 location的路由,push、pop操作对前端朋友不陌生吧 符号匹配 标签匹配,比如html标签 函数调用,比如递归为什么调用顺序和返回顺序是相反的 在leecode里,有这样一道有意思的题,原题是这样的: Given a string containing just the characters '(', ')'...原创 2019-01-03 13:44:11 · 209 阅读 · 0 评论 -
基于双向链表和HashMap的LRU算法实现
LRU算法 往往在做内存管理的时候,我们使用LRU算法比较多,即Last Recently Used,最近最少使用原则, 最早出现在Linux操作系统中。 具体的实现思路是使用哈希链表存储键值对,我们可以基于双向链表和HashMap自己实现一个LRU缓存算法。具体的代码如下: package com.natsuki; import java.util.HashMap; /** * @Auth...原创 2019-05-12 13:17:14 · 876 阅读 · 0 评论 -
代码之禅
在写代码和维护项目的时候,如果没有一个很好的代码编写习惯,很容易会写出各种诡异bug,维护也异常困难。 本篇博客总结了我自己在写代码的心得,关键是通过设计和测试大幅度降低bug。 持续更新中。。。 设计篇 原则1 单一职责 这应该是最重要的原则了,不管是方法还是类,只做尽可能少的事情,比如: @Data @RequiredArgsConstructor @AllArgsConstructor p...原创 2019-09-05 15:31:28 · 331 阅读 · 0 评论