Java LRU缓存-如何声明对列表元素的引用
我试图使用HashMap和双链表实现LRU缓存。我想创建以下类:-Java LRU缓存-如何声明对列表元素的引用,java,Java,我试图使用HashMap和双链表实现LRU缓存。我想创建以下类:- public class LRUCache { List<V> list; // LinkedList() Map<K, <Reference to list elements/nodes?>> map; // Hashtable() } 公共类LRUCache{ List;//LinkedList() Map Map;//Hashtable() } 我计划使用Linke
public class LRUCache {
List<V> list; // LinkedList()
Map<K, <Reference to list elements/nodes?>> map; // Hashtable()
}
公共类LRUCache{
List;//LinkedList()
Map Map;//Hashtable()
}
我计划使用LinkedList类作为双链接列表和哈希表类来存储。但是,我不确定如何声明或定义对列表中内部节点元素的引用
下面的参考使用内部节点类进行实现。这是因为LinkedList类的封装导致您无法访问内部数据字段吗
我知道我的理解部分正确,但也需要一些确认。我试图在leetcode上解决这个问题,但由于这个问题,我被困了很长时间
//下面的代码片段
公共类LRUCache{
//使用指向上一项和下一项的指针以及键、值对定义节点
类节点{
不,你不能做你在Java中尝试做的事情;你不能访问链接列表的内部节点。你可以做的是在中使用LinkedHashMap,然后重写RemoveedStantry
来限制缓存大小。不,你不能做你在Java中尝试做的事情;你不能访问的内部节点LinkedList
。您可以在中使用LinkedHashMap,然后重写RemoveedStantry
以限制缓存大小。这是由于封装,对吗?这意味着如果我想从头开始编写它,我需要定义自己的节点类,以后可以用作引用。这是由于封装,对吗?这意味着如果我想从头开始写,我需要定义我自己的节点类,以后可以用作引用。
// snippet below
public class LRUCache<K, V>{
// Define Node with pointers to the previous and next items and a key, value pair
class Node<T, U> {