基于双向链接表和HashMap实现的LRU缓存
一直在做关于缓存方面的研究,今天终于用非LinkedHashMap的方式将其实现了,Mark一下! 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798
一直在做关于缓存方面的研究,今天终于用非LinkedHashMap的方式将其实现了,Mark一下! 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798
精彩继续,实现完SingleLinkedList之后,今天又实现了双向链接表,代码如下: 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818
现在对Java原生数据结构特感兴趣,于是决定自己动手实现一些类,比如这个List类,在熟习了单链表和双链表的数据结构之后,终于实现了,代码如下: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676
学过操作系统的人都知道LRU页面切换算法,其实这个算法不仅仅只是能在页面切换中应用到,在缓存中也有很实际的应用。最典型的实现方式是采用LinkedHashMap来实现这个缓存,大家可以在Java源码里面看到这个类的作者关于这个的描述,不过全是英文,但是却明确提到过。 下面废话不多说,直接展示我自己关于这个算法实现的代码吧,亲测通过: 核心算法代码: 12345678910111213141516
先看看实现了哪些功能吧?(1)构造二叉树 (2)遍历二叉树结点 (3)搜索二叉树结点 (4)删除二叉树结点 (5)判断结点是否存在二叉树 上代码12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686