lotus

贵有恒何必三更眠五更起 最无益只怕一日曝十日寒

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理
  1846 随笔 :: 0 文章 :: 109 评论 :: 288万 阅读
 

 

流程图:

 

 1. 代码

复制代码
 1 import java.util.ArrayList;
 2 
 3 public class LRUCache {
 4     private int cacheMaxSize = 0;
 5     private ArrayList<Integer> pages = null; // Interger means page id
 6 
 7     public LRUCache(int cacheMaxSize) {
 8         this.cacheMaxSize = cacheMaxSize;
 9         pages = new ArrayList<Integer>();
10     }
11 
12     public void add(Integer p) {
13         if (pages.contains(p)) {
14             pages.remove(p);
15             pages.add(p);
16         } else if (pages.size() == cacheMaxSize) {
17             pages.remove(0);
18             pages.add(p);
19         } else {
20             pages.add(p);
21         }22     }
23 }
复制代码

 2. 测试的代码

复制代码
import java.util.ArrayList;
import java.util.Scanner;

import xqy.been.LRUCache;

public class LRU {
    private Scanner sc;
    private LRUCache lc = null;
    private ArrayList<Integer> pages = null;
    
    public LRU() {
        sc = new Scanner(System.in);
        pages = new ArrayList<Integer>();
        
        init();
        op();
    }
    
    private void init() {
        int key = -2;
        
        System.out.print("<LRU> 请输入物理块个数:");
        lc = new LRUCache(sc.nextInt());

        System.out.println("<LRU> 请按顺序输入页号(exit: -1): ");
        while (key != -1) {
            key = sc.nextInt();
            
            if (key > 0) {
                pages.add(key);
            }
        }
    }
    
    private void op() {
        for (int i = 0; i < pages.size(); i++) {
            lc.add(pages.get(i));
        }
    }
    
    public static void main(String[] args) {
        new LRU();
    }
}
复制代码
posted on   白露~  阅读(244)  评论(0编辑  收藏  举报
编辑推荐:
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
点击右上角即可分享
微信分享提示