「java手写lru」java手写数据库

博主:adminadmin 2022-11-22 09:54:07 53

本篇文章给大家谈谈java手写lru,以及java手写数据库对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

用java语言实现LRU算法和FIFO算法。急急急!!!!!!!

您好,百度贴吧专家团很高兴能够回答您的问题。您的采纳是我们前进的动力。

public class LRU {

private int theArray[];

private int back; //定义队尾

private int currentSize; //队列中存放元素个数

private int maxSize=5; //队列中能存放元素的个数

public LRU(){

theArray=new int[maxSize];

back=0;

currentSize=0;

}

public void queue(int a[]){

for(int i=0;ia.length;i++){

enQueue(a[i]);

}

}

public void enQueue(int x){ //入队

beUsed(x); //先判断是否已存在该页号,若存在,删除

if(currentSizemaxSize){

theArray[back]=x;

back++;

currentSize++;

}else if(currentSize==maxSize){ //满了

for(int i=0;imaxSize-1;i++){

theArray[i]=theArray[i+1];

}

theArray[maxSize-1]=x;

}

for(int i=0;icurrentSize;i++){

System.out.print(theArray[i]);

}

System.out.println();

}

public void beUsed(int x){ //判断是否已存在该页号,若存在,删除已有的

for(int i=0;icurrentSize;i++){

if(theArray[i]==x){

for(int j=i;jcurrentSize-1;j++){

theArray[j]=theArray[j+1];

}

currentSize--;

back--;

}

}

}

public static void main(String[] args) {

LRU lru=new LRU();

int a[]={4,7,0,7,1,0,1,2,1,2,6};

lru.queue(a);

}

}

又没有c语言java语言比较厉害的帮我写个代码,不难,会的话估计不到20分钟就写完了页面lru算法

贴一个我写的LRU cache算法,用c++实现的

具体的数据结构用的一个链表加一张哈希表。

实现了set和get, 需要另外的功能我还可以再写。

class LRUCache{

struct cacheEntry{

int key;

int value;

cacheEntry(int c, int v):key(c),value(v){}

};

int _cap;

listcacheEntry entryList;

unordered_mapint, listcacheEntry::iterator entryMap;

void moveToHead(listcacheEntry::iterator it, int key, int value)

{

entryList.erase(it);

cacheEntry tmp(key, value);

entryList.push_front(tmp);

entryMap[key]=entryList.begin();

}

public:

LRUCache(int capacity) {

_cap=capacity;

}

int get(int key) {

if(entryMap.find(key)==entryMap.end())

return -1;

else{

moveToHead(entryMap[key], key, entryMap[key]-value);

return entryMap[key]-value;

}

}

void set(int key, int value) {

if(entryMap.find(key)==entryMap.end()){

if(entryList.size()=_cap){

entryMap.erase(entryList.back().key);

entryList.pop_back();

}

cacheEntry tmp(key, value);

entryList.push_front(tmp);

entryMap[key]=entryList.begin();

}

else{

entryMap[key]-value=value;

moveToHead(entryMap[key], key, value);

}

}

};

「java手写lru」java手写数据库

怎么用Java制作手写板,如果能提供代码更好

做什么事都要学会GOOGLE。

搜索JAVA记事本。

你新建一个类叫TEST。

import java.awt.Color;

import java.awt.FileDialog;

import java.awt.Font;

import java.awt.Menu;

import java.awt.MenuBar;

import java.awt.MenuItem;

import java.awt.TextArea;

import java.awt.Toolkit;

import java.awt.datatransfer.Clipboard;

import java.awt.datatransfer.DataFlavor;

import java.awt.datatransfer.StringSelection;

import java.awt.datatransfer.Transferable;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import java.awt.event.WindowAdapter;

import java.awt.event.WindowEvent;

import java.io.File;

import java.io.FileReader;

import java.io.FileWriter;

import javax.swing.JFrame;

public class Test extends JFrame implements ActionListener {

/**

* Method main

*

*

* @param args

*

*/

MenuBar menuBar = new MenuBar();

Menu file = new Menu("File"), edit = new Menu("Edit"), help = new Menu(

"Help");

MenuItem[] menuItem = { new MenuItem("New"), new MenuItem("Open"),

new MenuItem("Save"), new MenuItem("Exit"),

new MenuItem("Select All"), new MenuItem("Copy"),

new MenuItem("Cut"), new MenuItem("Paste"), new MenuItem("Help") };

TextArea textArea = new TextArea();

String fileName = "NoName";

Toolkit toolKit = Toolkit.getDefaultToolkit();

Clipboard clipboard = toolKit.getSystemClipboard();

// opne and close message dialogs

private FileDialog openFileDialog = new FileDialog(this, "Open File",

FileDialog.LOAD);

private FileDialog saveFileDialog = new FileDialog(this, "Save File",

FileDialog.SAVE);

public static void main(String[] args) {

// TODO: Add your code here

Test MyEdit = new Test();

MyEdit.show();

}

/**

* Method MiniEdit

*

*

*/

public Test() {

// TODO: Add your code here

setTitle("MiniEdit");

setFont(new Font("Times New Roman", Font.PLAIN, 15));

setBackground(Color.white);

setSize(500, 500);

setMenuBar(menuBar);

menuBar.add(file);

menuBar.add(edit);

menuBar.add(help);

for (int i = 0; i 4; i++) {

file.add(menuItem[i]);

edit.add(menuItem[i + 4]);

}

help.add(menuItem[8]);

add(textArea);

addWindowListener(new WindowAdapter() {

public void windowClosing(WindowEvent e) {

e.getWindow().dispose();

System.exit(0);

}

});

// add actionListener

for (int i = 0; i menuItem.length; i++) {

menuItem[i].addActionListener(this);

}

}

/**

* Method actionPerformed

*

*

* @param e

*

*/

public void actionPerformed(ActionEvent e) {

// TODO: Add your code here

Object eventSource = e.getSource();

if (eventSource == menuItem[0])// newItem

{

textArea.setText("");

}

else if (eventSource == menuItem[1])// OpenItem

{

openFileDialog.show();

fileName = openFileDialog.getDirectory() + openFileDialog.getFile();

if (fileName != null) {

openFile(fileName);

}

}

else if (eventSource == menuItem[2])// SaveItem

{

saveFileDialog.show();

fileName = saveFileDialog.getDirectory() + saveFileDialog.getFile();

if (fileName != null) {

writeFile(fileName);

}

}

else if (eventSource == menuItem[3])// exitItem

{

System.exit(0);

}

else if (eventSource == menuItem[4])// Select All

{

textArea.selectAll();

} else if (eventSource == menuItem[5])// copy

{

String text = textArea.getSelectedText();

StringSelection selection = new StringSelection(text);

clipboard.setContents(selection, null);

}

else if (eventSource == menuItem[6])// cut

{

String text = textArea.getSelectedText();

StringSelection selection = new StringSelection(text);

clipboard.setContents(selection, null);

textArea.replaceText("", textArea.getSelectionStart(), textArea

.getSelectionEnd());

}

else if (eventSource == menuItem[7])// Paste

{

Transferable contents = clipboard.getContents(this);

if (contents == null)

return;

String text;

text = "";

try {

text = (String) contents

.getTransferData(DataFlavor.stringFlavor);

} catch (Exception ex) {

}

textArea.replaceText(text, textArea.getSelectionStart(), textArea

.getSelectionEnd());

} else if (eventSource == menuItem[8]) {

// JOptionPane.showMessageDialog(null,"This is a MiniEdit.");

}

}

// Read file

public void openFile(String fileName) {

try {

File file = new File(fileName);

FileReader readIn = new FileReader(file);

int size = (int) file.length();

int charsRead = 0;

char[] content = new char[size];

while (readIn.ready())

charsRead += readIn.read(content, charsRead, size - charsRead);

readIn.close();

textArea.setText(new String(content, 0, charsRead));

} catch (Exception e) {

System.out.println("Error opening file!");

}

}

// write file

public void writeFile(String fileName) {

try {

File file = new File(fileName);

FileWriter write = new FileWriter(file);

write.write(textArea.getText());

write.close();

} catch (Exception e) {

System.out.println("Error closing file!");

}

}

}

请问:Java中的LRU Cache是什么意思?最好能详细说明,谢谢!!

LRU可以说是一种算法,也可以算是一种原则,用来判断如何从Cache中清除对象,而LRU就是“近期最少使用”原则,当Cache溢出时,最近最少使用的对象将被从Cache中清除。

简单,简单到java使用LRU缓存问题,怎么解决

:对于Java开发者,JCS是一个强大的,然而却简单易用的缓存系统。它为桌面和Web应用程序提供了同样的数据缓存。桌面应用程序的增长----像Web应用要求增强速度和灵活性一样,通过使用缓存数据也有助于达到同样的效果。怎样配置和使用JCS,同时包括..

java手写lru的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于java手写数据库、java手写lru的信息别忘了在本站进行查找喔。

The End

发布于:2022-11-22,除非注明,否则均为首码项目网原创文章,转载请注明出处。