博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
一个最简单的LRUCache实现 (JAVA)
阅读量:5122 次
发布时间:2019-06-13

本文共 1652 字,大约阅读时间需要 5 分钟。

流程图:

 

 1. 代码

1 import java.util.ArrayList; 2  3 public class LRUCache { 4     private int cacheMaxSize = 0; 5     private ArrayList
pages = null; // Interger means page id 6 7 public LRUCache(int cacheMaxSize) { 8 this.cacheMaxSize = cacheMaxSize; 9 pages = new ArrayList
();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
pages = null; public LRU() { sc = new Scanner(System.in); pages = new ArrayList
(); init(); op(); } private void init() { int key = -2; System.out.print("
请输入物理块个数:"); lc = new LRUCache(sc.nextInt()); System.out.println("
请按顺序输入页号(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(); }}

 

转载于:https://www.cnblogs.com/daheww/p/10192376.html

你可能感兴趣的文章
linux install ftp server
查看>>
嵌入式软件设计第8次实验报告
查看>>
算法和数据结构(三)
查看>>
Ubuntu下的eclipse安装subclipse遇到没有javahl的问题...(2天解决了)
查看>>
alter database databasename set single_user with rollback IMMEDIATE 不成功问题
查看>>
WCF揭秘——使用AJAX+WCF服务进行页面开发
查看>>
【题解】青蛙的约会
查看>>
IO流
查看>>
mybatis调用存储过程,获取返回的游标
查看>>
设计模式之装饰模式(结构型)
查看>>
面向对象的设计原则
查看>>
Swift3.0服务端开发(三) Mustache页面模板与日志记录
查看>>
【转】 FPGA设计的四种常用思想与技巧
查看>>
EntityFrameWork 实现实体类和DBContext分离在不同类库
查看>>
autopep8
查看>>
GIT在Linux上的安装和使用简介
查看>>
基于C#编程语言的Mysql常用操作
查看>>
s3c2440实验---定时器
查看>>
MyEclipse10安装SVN插件
查看>>
[转]: 视图和表的区别和联系
查看>>