LinkedHashMap 实现“最近最少使用”的原则,PriorityQueue优先级
来源:互联网 发布:单纯和傻的区别 知乎 编辑:程序博客网 时间:2024/06/05 19:54
每次调用get或put,收到影响的条目将从当前位置删除,并放到条目链表的尾部(只影响条目在链表中的位置)
可以实现“最近最少使用”的原则。重写removeEldestEntry
假如你希望将访问频率高的放到内存中,频率低的删除。只需删除链表的前面条目即可;
当然还可以对eldest条目进行评估,以此决定是否应该删除。
LinkedHashMap(int initialCapacity, float loadFactor, boolean accessOrder)
public static void main(String[] args) { Map<String,Integer> dd=new LinkedHashMap<String,Integer>(10,0.75f,true){ // return true 删除频率低的 protected boolean removeEldestEntry(Map.Entry<String,Integer> eldest) { //eldest == 22:2 22是最先放进来的 return size()>3; } }; dd.put("22",2); dd.put("55",5); dd.put("66",6); dd.get("22");//调用22 ,那么55就是频率低的,在put “77”时 ,size()>3 返回true ;因此删除 “55” dd.put("77",7); System.out.println(dd.keySet());//out : [66, 22, 77] dd.get("66"); System.out.println(dd.keySet());//out : [22, 77, 66] }
下面是优先级队列PriorityQueue;迭代不是按照元素的排列顺序访问。删除总是删掉列表中优先级数最小的那个元素
public static void main(String[] args) { PriorityQueue<LocalDate> pq=new PriorityQueue<>(); pq.add(LocalDate.of(1906,12,9)); pq.add(LocalDate.of(1815,12,9)); pq.add(LocalDate.of(1903,12,9)); pq.add(LocalDate.of(1910,12,9)); System.out.println("Iterating elements..."); for (LocalDate ld:pq) System.out.println(ld);//迭代不是按照元素的排列顺序访问。 System.out.println("Removing elements..."); while (!pq.isEmpty()) System.out.println(pq.remove());//删除总是删掉列表中优先级数最小的那个元素 }
阅读全文
0 0
- LinkedHashMap 实现“最近最少使用”的原则,PriorityQueue优先级
- 用LinkedHashMap实现最近最少使用cache
- LinkedHashMap实现一个固定容量的基于最近最少使用算法的缓存类
- LinkedHashMap的最近最少使用(LUR)算法实践-
- java中PriorityQueue优先级队列的使用
- java之中PriorityQueue实现原理(具有优先级的队列)
- java Comparator接口和PriorityQueue优先级队列的使用
- 利用LinkedHashMap实现一个简单的LUR(Least Recently Used 近期最少使用算法)的cache的两种方法
- 最近最少使用
- JDK中优先级队列PriorityQueue实现分析
- leetcode LRU Cache(高级缓存的最近最少使用算法实现)
- Java实现LRU(最近最少使用)缓存
- Java实现LRU(最近最少使用)缓存
- Java实现LRU(最近最少使用)缓存
- PriorityQueue的内部实现
- PriorityQueue的BinaryHeap实现
- 最多、最少使用优先级算法
- PriorityQueue的使用
- lstm用于文本分类(gpu实现)--deeplearning4j为例子
- Java线程面试题 Top 50
- 批量导入数据到MySQL数据库
- 神经网络——深度学习
- 【bzoj1699】[Usaco2007 Jan][Balanced Lineup排队]
- LinkedHashMap 实现“最近最少使用”的原则,PriorityQueue优先级
- 2017-07-08【NOIP-普及组】模拟赛C组-count-题解
- jzoj. 3519. 【NOIP2013模拟11.6A组】灵能矩阵(pylon)
- 2017-07-08【NOIP-普及组】模拟赛C组-sort-题解
- TCP的三次握手和四次挥手详解
- 2017-07-08【NOIP-普及组】模拟赛C组-sum-题解
- 2017-07-08【NOIP提高组】模拟赛B组-连通块(connect)-题解
- ToBase64String方法
- 理解Linux系统负荷