实现lru 缓存
发布时间:2020-12-14 23:18:54 所属栏目:Java 来源:网络整理
导读:今天PHP站长网 52php.cn把收集自互联网的代码分享给大家,仅供参考。 LRU Cache ? Show Tags public class LRUCache { static class Node { int key; int value; @Override public String toString() { return "Node{" +
以下代码由PHP站长网 52php.cn收集自互联网 现在PHP站长网小编把它分享给大家,仅供参考 LRU Cache?
Show Tags
public class LRUCache { static class Node { int key; int value; @Override public String toString() { return "Node{" + "key=" + key + ",value=" + value + '}'; } } static private LinkedList<Node> cache; static private int cap; static private Node indexMap[]; public LRUCache(int capacity) { cache = new LinkedList<Node>(); indexMap = new Node[100000]; cap = capacity; } static public boolean isFull() { return cache.size() == cap; } static public Node find(int key) { if (cache.isEmpty()) return null; Node tar = null; if ((tar = indexMap[key]) == null) return null; cache.remove(tar); cache.addFirst(tar); return tar; } public int get(int key) { Node node = find(key); if (node == null) { return -1; } return node.value; } public void set(int key,int value) { Node node = null; if ((node = find(key)) != null) { node.value = value; return; } //not find the element if (isFull()) { indexMap[cache.getLast().key] = null; cache.removeLast(); } Node newNode = new Node(); newNode.key = key; newNode.value = value; cache.addFirst(newNode); indexMap[key] = newNode; } } 以上内容由PHP站长网【52php.cn】收集整理供大家参考研究 如果以上内容对您有帮助,欢迎收藏、点赞、推荐、分享。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |