「java手写lru」java手写数据库
本篇文章给大家谈谈java手写lru,以及java手写数据库对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:
- 1、用java语言实现LRU算法和FIFO算法。急急急!!!!!!!
- 2、又没有c语言java语言比较厉害的帮我写个代码,不难,会的话估计不到20分钟就写完了页面lru算法
- 3、怎么用Java制作手写板,如果能提供代码更好
- 4、请问:Java中的LRU Cache是什么意思?最好能详细说明,谢谢!!
- 5、简单,简单到java使用LRU缓存问题,怎么解决
用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制作手写板,如果能提供代码更好
做什么事都要学会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的信息别忘了在本站进行查找喔。
发布于:2022-11-22,除非注明,否则均为
原创文章,转载请注明出处。