当前位置: 首页 > news >正文

哪些网站可以做问卷调查百度推广一年大概多少钱

哪些网站可以做问卷调查,百度推广一年大概多少钱,网站滚动字幕怎么做,网页设计实验报告步骤思路: 首先要了解LRU缓存的原理,首先定下容量,每次get请求和put请求都会把当前元素放最前/后面,如果超过容量那么头部/尾部元素就被移除,所以最近最少使用的元素会被优先移除,保证热点数据持续存在。 不管放…

思路:

        首先要了解LRU缓存的原理,首先定下容量,每次get请求和put请求都会把当前元素放最前/后面,如果超过容量那么头部/尾部元素就被移除,所以最近最少使用的元素会被优先移除,保证热点数据持续存在。 不管放在头部还是尾部都可以。看你怎么定义

        那么如何实现呢?有两种方式第一种直接继承LinkedHashMap 这个是已经帮我们实现的,代码如下:

class LRUCache extends LinkedHashMap<Integer, Integer>{private int capacity;public LRUCache(int capacity) {super(capacity, 0.75F, true);this.capacity = capacity;}public int get(int key) {return super.getOrDefault(key, -1);}// 这个可不写public void put(int key, int value) {super.put(key, value);}@Overrideprotected boolean removeEldestEntry(Map.Entry<Integer, Integer> eldest) {return size() > capacity; }
}

第二种就是手动去实现了,代码如下:

class LRUCache extends AbstractLRUCache<Integer, Integer> {public LRUCache(int capacity) {super(capacity);}public int get(int key) {Integer ans = super.get(key);return ans == null ? -1 : ans;}public void put(int key, int value) {super.set(key, value);}
}abstract class AbstractLRUCache<K, V> {private Map<K, Node<K, V>> keyNodeMap;private NodeDoubleLinkedList<K, V> nodeList;private final int capacity;public AbstractLRUCache(int cap) {if (cap < 1) {throw new RuntimeException("should be more than 0");}keyNodeMap = new HashMap<>();nodeList = new NodeDoubleLinkedList<>();capacity = cap;}public V get(K key) {if (keyNodeMap.containsKey(key)) {Node<K, V> res = keyNodeMap.get(key);nodeList.moveNodeToTail(res);return res.value;}return null;}public void set(K key, V value) {if (keyNodeMap.containsKey(key)) {Node<K, V> node = keyNodeMap.get(key);node.value = value;nodeList.moveNodeToTail(node);} else {Node<K, V> newNode = new Node<>(key, value);keyNodeMap.put(key, newNode);nodeList.addNode(newNode);if (keyNodeMap.size() == capacity + 1) {removeMostUnusedCache();}}}private void removeMostUnusedCache() {Node<K, V> node = nodeList.removeHead();keyNodeMap.remove(node.key);}class Node<K, V> {public K key;public V value;public Node<K, V> last;public Node<K, V> next;public Node(K key, V value) {this.key = key;this.value = value;}}class NodeDoubleLinkedList<K, V> {private Node<K, V> head;private Node<K, V> tail;public NodeDoubleLinkedList() {head = null;tail = null;}public void addNode(Node<K, V> newNode) {if (newNode == null) {return;}if (head == null) {head = newNode;tail = newNode;} else {tail.next = newNode;newNode.last = tail;tail = newNode;}}public void moveNodeToTail(Node<K, V> node) {if (this.tail == node) {return;}if (this.head == node) {this.head = node.next;this.head.last = null;} else {node.last.next = node.next;node.next.last = node.last;}node.last = this.tail;node.next = null;this.tail.next = node;this.tail = node;}public Node<K, V> removeHead() {if (this.head == null) {return null;}Node<K, V> res = this.head;if (this.head == this.tail) {this.head = null;this.tail = null;} else {this.head = res.next;res.next = null;this.head.last = null;}return res;}}
}

以下是代码实现的功能要点:

  1. AbstractLRUCache 是一个抽象类,它包含了 LRU 缓存的核心逻辑,如添加节点、移动节点到链表尾部、移除最少使用的节点等。

  2. LRUCache 是 AbstractLRUCache 的具体实现,它提供了 get 和 put 方法来与缓存进行交互。这些方法调用了抽象类中的方法来实现 LRU 逻辑。

  3. Node 类代表缓存中的一个条目,包含键、值以及指向前一个和后一个节点的指针。

  4. NodeDoubleLinkedList 是一个双向链表,用于按照访问顺序维护缓存中的节点。最近访问的节点被移动到链表的尾部,而最少使用的节点位于链表的头部。

  5. 当缓存达到其容量限制时,最少使用的节点(链表头部的节点)将被移除,以确保缓存大小不超过设定的容量。

http://www.ds6.com.cn/news/24339.html

相关文章:

  • 沂水住房与城乡建设局网站济南百度开户电话
  • wordpress网站前台打开慢百度app最新版本
  • 联想粒子云可以做网站轻松seo优化排名
  • 浙江网站建设哪家最好网推拉新app推广平台
  • 郑州网站建设招聘企业管理培训视频免费
  • 网站首页的名字通常是爱站网关键词密度查询
  • 如何建设一个国外网站广州番禺最新发布
  • 山西 网站制作武汉网站设计十年乐云seo
  • 襄州区住房和城乡建设局网站谷歌搜索引擎免费入口 台湾
  • 衡阳市党政门户网站今日最新消息
  • 做网站公司郑州郑州的网站建设公司排名常见的网络营销手段
  • 宜昌做网站要什么条件百度seo优化网站
  • 花生壳盒子可以做网站服务器传智播客培训机构官网
  • flash网站做seo优化好不好网站建设详细方案模板
  • 成都网站设计公抖音seo软件工具
  • 在贸易网站怎么做贸易深圳seo优化排名公司
  • python做网站教程2024百度下载
  • 有什么免费的wordpress神马seo教程
  • 上海培训网站建设网络营销的概念和特征
  • 温州云海和联欣哪个做网站比较好b站推广渠道
  • 免费发布信息网站大全666外贸营销系统
  • 做网站营销发布文章什么是口碑营销
  • 营销型网站建设服务商免费seo软件推荐
  • 石家庄模板建站系统关键词林俊杰免费听
  • 做网站建设的网站东莞seo排名收费
  • 网站的优化方法有哪些内容网络营销有哪些例子
  • 手机软件做的相册怎样传到网站推广游戏赚钱的平台有哪些
  • 怎么做防劫持网站软文发布
  • 免费如何创建网站平台百度谷歌seo优化
  • 济南建设网站的公司吗引擎seo优