算法与数据结构
文章平均质量分 91
暴走的怪兽君
学习路上总是伴随着孤独和痛苦
展开
-
浅谈java中的HashMap及那些踩过的坑
在java开发中,最常用的集合类莫过于ArrayList和HashMap,hashmap作为map的派生基类,以hash码为key值存储,大大提高了存储和检索效率,在数据kv映射下有着广泛的应用场景。原创 2021-12-16 14:48:30 · 3320 阅读 · 0 评论 -
在java里基于jvm内存实现带过期检查的缓存组件
用了redis,是不是很喜欢redis的过期机制,带时效性的数据存进去,不需要在代码中处理数据就自动过期删除。那么,基于redis的使用场景,怎么在Java中实现并增强这一机制呢?接下来我将和大家分享我自己的一个基于jvm内存打造的缓存组件。第一步:定义存储结构-键值存储键值存储在java中最直接简单的方式就是HashMap,高效直接,所以组件底层核心存储结构就是一个基于HashMap的散列存储。public class LocalCache{ private Map<String,Cach原创 2021-09-14 22:20:54 · 702 阅读 · 0 评论 -
【算法笔记】使用栈实现汉诺塔(Hanoi)经典算法
汉诺塔(Hanoi)算法,应该是每一个程序员都会学习到的递推算法之一,汉诺塔是一个很著名的智力题,但是这里就不科普它的由来了,我们直接进入正题。 如上图,假设A棒有五个原盘,依次移动,每次移动一块,小的永远只能在上面,最终移动到C棒上,如何用算法实现呢? 从这里移动的逻辑我们很容易发现,A帮不就像一个栈吗,栈顶必须先出,网上看过很多汉诺塔算法,很少涉及到用栈实现,的确原创 2017-09-28 23:44:28 · 2799 阅读 · 0 评论 -
【Java笔记】利用位运算实现数值交换
在学习任何语言时,都会提及到一种容易被大家忽视的运算方法–>位运算 在java中,由于JVM机制的存在,使得位运算存在感更加低,并且,为了程序的可读性,也有程序员不愿意使用位运算进行操作。 但是位运算的优秀性能,作为一个程序员是不得不学习,不管是否会用到,都应学习学习其中的原理及思想,这给我们带来的影响是潜移默化的。 基本位运算符 : & | ^ ~原创 2017-09-28 23:04:55 · 1876 阅读 · 1 评论