亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? cacherbuffer.java

?? 實現LRU算法的Cache源代碼
?? JAVA
字號:
package com.dw.system.cache ;

import java.io.* ;
import java.util.* ;
/**
 * Cacher的緩沖區
 * 該緩沖區使用Hashtable&鏈表結合使得即可以快速的獲得內容
 * 又可以控制緩沖區的長度,同時實現LRU算法對舊內容進行排除
 */

public class CacherBuffer
{
	 int iMaxBufferLen = Integer.MAX_VALUE ;
	 /**
	  * 用來指向Shell雙向鏈表的首尾指針,它本身也是一個Shell
	  * 它的prev指向尾部,next指向鏈表頭
	  */
	 Shell shHead = new Shell () ;
	 Hashtable htBuffer = new Hashtable () ;

	 public CacherBuffer ()
	 {
		  //create a empty list
		  shHead.setPrev (shHead) ;
		  shHead.setNext (shHead) ;
	 }

	 public CacherBuffer (int len)
	 {
		  this () ;
		  if (len<=0)
			   throw new RuntimeException ("Error:CacherBuffer cannot be set to <=0!") ;
		  iMaxBufferLen = len ;
	 }

	 /**
	  * 把一個新的shell加到鏈表的頭中
	  */
	 private void addToListHead (Shell newsh)
	 {
		  if (newsh.getPrev()!=null||newsh.getNext()!=null)
			   throw new RuntimeException ("Shell cannot be added because of existing in buffer!") ;
		  newsh.setPrev (shHead) ;
		  newsh.setNext (shHead.getNext()) ;
		  shHead.getNext().setPrev (newsh) ;
		  shHead.setNext (newsh) ;
	 }


	 private Shell removeListTail ()
	 {
		  Shell tmpsh = getListTail () ;
		  if (tmpsh!=null)
			   removeFromList (tmpsh) ;
		  return tmpsh ;
	 }
	 /**
	  *
	  */
	 private void removeFromList (Shell sh)
	 {
		  if (sh.getPrev()==null||sh.getNext()==null)
			   throw new RuntimeException ("Shell cannot remove from list because of not existing in buffer!") ;
		  if (sh==shHead)
			   throw new RuntimeException ("Cannot remove head!") ;
		  sh.getPrev().setNext (sh.getNext()) ;
		  sh.getNext().setPrev (sh.getPrev()) ;
		  sh.setPrev (null) ;
		  sh.setNext (null) ;
	 }
	 /**
	  * 把已存在的shell一到頭部,實現LRU排序
	  */
	 private void transferToListHead (Shell sh)
	 {
		  removeFromList (sh) ;
		  addToListHead (sh) ;
	 }

	 private Shell getListHead ()
	 {
		  Shell tmpsh = shHead.getNext () ;
		  if (tmpsh==shHead)
			   return null ;
		  else
			   return tmpsh ;
	 }

	 private Shell getListTail ()
	 {
		  Shell tmpsh = shHead.getPrev () ;
		  if (tmpsh==shHead)
			   return null ;
		  else
			   return tmpsh ;
	 }



	 synchronized public void addShell (Shell sh)
	 {
		  if (htBuffer.size()<iMaxBufferLen)
		  {
			   addToListHead (sh) ;
		  }
		  else
		  {//full and remove one shell USING LRU
			   Shell tmpsh = removeTailShell () ;
			   if (tmpsh==null)
					throw new RuntimeException ("Some Error:no shell in list while buffer is full??") ;
			   addToListHead (sh) ;
		  }

		  htBuffer.put (sh.getKey(),sh) ;
	 }
	 /**
	  * 獲取某個shell,并把它放到鏈表的前面
	  */
	 synchronized public Shell accessShell (Object key)
	 {
		  Shell tmpsh = (Shell)htBuffer.get (key) ;
		  if (tmpsh==null)
			   return null ;
		  transferToListHead (tmpsh) ;
		  return tmpsh ;
	 }
	 /**
	  * 獲取某個shell
	  */
	 public Shell getShell (Object key)
	 {
		  return (Shell)htBuffer.get (key) ;
	 }
	 synchronized public Shell removeShell (Object key)
	 {
		  Shell tmpsh = (Shell)htBuffer.get (key) ;
		  if (tmpsh==null)
			   return null ;
		  removeFromList (tmpsh) ;
		  htBuffer.remove (key) ;
		  return tmpsh ;
	 }

	 synchronized public void removeShell (Shell sh)
	 {
		  removeFromList (sh) ;
		  htBuffer.remove (sh.getKey()) ;
	 }

	 synchronized public Shell removeTailShell ()
	 {
		  Shell tmpsh = removeListTail () ;
		  if (tmpsh==null)
			   return null ;
		  htBuffer.remove (tmpsh.getKey()) ;
		  return tmpsh ;
	 }

	 synchronized public void emptyBuffer ()
	 {
		  shHead.setPrev (shHead) ;
		  shHead.setNext (shHead) ;
		  htBuffer.clear () ;
	 }

	 public boolean isEmpty()
	 {
		  return htBuffer.isEmpty() ;
	 }

	 public int size()
	 {
		  return htBuffer.size() ;
	 }

	 public int getMaxBufferLen ()
	 {
		  return iMaxBufferLen ;
	 }

	 synchronized public void setMaxBufferLen (int len)
	 {
		  if (len<=0)
			   throw new RuntimeException ("Error:CacherBuffer cannot be set to <=0!") ;
		  int curlen = getBufferLen () ;
		  for (int i = len ; i < curlen ; i ++)
			   removeTailShell () ;
		  iMaxBufferLen = len ;
	 }

	 public int getBufferLen ()
	 {
		  return htBuffer.size () ;
	 }

	 synchronized public Shell[] getAllShell ()
	 {
		  int s = htBuffer.size () ;
		  Shell[] rets = new Shell [s] ;
		  Shell tmpsh = shHead ;
		  for (int i = 0 ; i < s ; i ++)
		  {
			   rets[i] = tmpsh.getNext () ;
			   tmpsh = rets[i] ;
		  }
		  return rets ;
	 }


	 synchronized public Enumeration getAllKeys()
	 {
		  return htBuffer.keys() ;
	 }


	 synchronized public void list ()
	 {
		  System.out.println ("-----In list----------------") ;
		Shell[] shs = getAllShell () ;
		for (int i = 0 ; i < shs.length ; i ++)
			System.out.println (shs[i].toString()) ;
		System.out.println ("---------------------------") ;
		System.out.println ("-----In hash----------------") ;
		for (Enumeration en = htBuffer.keys () ; en.hasMoreElements () ;)
		{
			 String tmpkey = (String)en.nextElement () ;
			 System.out.println (tmpkey+"="+htBuffer.get(tmpkey)) ;
		}
		System.out.println ("---------------------------") ;
	 }
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
色狠狠一区二区| 久久精品亚洲精品国产欧美kt∨| 337p亚洲精品色噜噜噜| 欧美韩日一区二区三区| 蜜桃视频在线一区| 在线观看一区不卡| 国产精品视频在线看| 蜜臀91精品一区二区三区| 欧美日韩国产色站一区二区三区| 在线成人免费视频| 国产精品午夜免费| 美女爽到高潮91| 欧美日产在线观看| 亚洲午夜精品久久久久久久久| 国产伦精品一区二区三区免费 | 91在线云播放| 国产清纯白嫩初高生在线观看91 | 亚洲大片精品永久免费| 国产综合色产在线精品| 538在线一区二区精品国产| 亚洲特黄一级片| 成人av在线资源网| 久久精品人人做人人爽人人| 久久爱另类一区二区小说| 欧美一区二区在线免费播放 | 精品污污网站免费看| 亚洲美女偷拍久久| 一本色道亚洲精品aⅴ| 国产精品不卡一区| av不卡在线观看| 一区二区视频在线看| 激情深爱一区二区| 日韩精品一区二区三区视频| 免费成人在线视频观看| 日韩午夜精品电影| 国产一区福利在线| 中文字幕二三区不卡| 成人av一区二区三区| 国产精品免费久久| aaa亚洲精品| 亚洲蜜臀av乱码久久精品 | 6080国产精品一区二区| 男男成人高潮片免费网站| 日韩精品一区二区在线| 国产一区二区网址| 中文字幕av免费专区久久| 99精品国产99久久久久久白柏| 综合欧美一区二区三区| 欧美亚洲综合一区| 秋霞国产午夜精品免费视频| 欧美精品一区二区三区一线天视频| 国产在线精品视频| 亚洲欧美二区三区| 欧洲激情一区二区| 五月综合激情日本mⅴ| 日韩欧美一二三四区| 国产精品白丝jk白祙喷水网站 | 2023国产精华国产精品| 丁香亚洲综合激情啪啪综合| 亚洲精品国产a| 日韩一区二区麻豆国产| 粉嫩嫩av羞羞动漫久久久| 亚洲人成伊人成综合网小说| 91精品婷婷国产综合久久| 国产91高潮流白浆在线麻豆| 亚洲综合丁香婷婷六月香| 日韩精品专区在线影院观看 | 国产精品免费人成网站| 日本亚洲欧美天堂免费| 久久久久亚洲蜜桃| 91在线视频在线| 麻豆中文一区二区| 亚洲同性同志一二三专区| 日韩一级片在线观看| av在线这里只有精品| 日韩专区中文字幕一区二区| 亚洲国产电影在线观看| 欧美一级一区二区| a在线欧美一区| 黄网站免费久久| 日日摸夜夜添夜夜添国产精品| 国产精品区一区二区三| 欧美一级高清片| 欧美最猛性xxxxx直播| 国产成人在线免费观看| 欧美bbbbb| 亚洲午夜羞羞片| 亚洲男人都懂的| 久久综合久久综合亚洲| 亚洲午夜激情网页| 久久综合久色欧美综合狠狠| 欧美探花视频资源| 成人av资源站| 国产成人无遮挡在线视频| 麻豆成人久久精品二区三区红| 亚洲裸体xxx| 国产精品久久久久久久久免费丝袜| 欧美成人福利视频| 3atv一区二区三区| 欧美精品色综合| 欧美色区777第一页| 色综合天天综合网天天看片| 99这里都是精品| 夫妻av一区二区| 99re这里只有精品首页| 国产成人精品aa毛片| 国产最新精品精品你懂的| 国产一区在线视频| 国产精品夜夜嗨| 国产不卡一区视频| 高清在线成人网| 成人黄色网址在线观看| 成人av高清在线| av激情亚洲男人天堂| 99精品视频一区二区| 99精品久久只有精品| 91精彩视频在线观看| 欧美亚洲精品一区| 欧美蜜桃一区二区三区| 欧美老肥妇做.爰bbww| 欧美日韩电影在线播放| 91精品国产丝袜白色高跟鞋| 欧美一区三区二区| 久久在线观看免费| 国产精品国产三级国产aⅴ入口| 亚洲人成网站在线| 日韩成人一级大片| 国内成人免费视频| 不卡的电视剧免费网站有什么| 色先锋久久av资源部| 在线看日本不卡| 91精品国产91综合久久蜜臀| 精品福利一区二区三区免费视频| 中文一区二区在线观看| 亚洲欧美激情在线| 日韩av一区二区三区四区| 国产suv精品一区二区6| 91香蕉视频mp4| 7777精品伊人久久久大香线蕉完整版 | 久久夜色精品一区| 中文字幕精品一区二区精品绿巨人| 国产精品久久久久婷婷| 亚洲一级不卡视频| 国模冰冰炮一区二区| 91丨porny丨国产入口| 欧美日本韩国一区二区三区视频| 精品免费视频.| 亚洲私人黄色宅男| 久久精品国产网站| 色天天综合色天天久久| 日韩欧美一级在线播放| 国产精品久久免费看| 五月激情综合色| 成人在线视频一区二区| 欧美人妖巨大在线| 日本一区二区三级电影在线观看 | 午夜影院在线观看欧美| 国内久久婷婷综合| 日本大香伊一区二区三区| 精品福利一区二区三区| 亚洲成人av一区| 成人自拍视频在线观看| 日韩欧美一二三四区| 亚洲一区二区三区自拍| 国产福利一区二区| 7777精品伊人久久久大香线蕉的| 国产精品不卡视频| 精久久久久久久久久久| 欧美日韩极品在线观看一区| 国产精品美女久久久久久| 久久福利资源站| 欧美日韩免费在线视频| 中文字幕一区二区三区在线观看| 久久精品国产精品亚洲红杏| 91丨九色丨黑人外教| 久久精品男人的天堂| 免费成人在线视频观看| 6080日韩午夜伦伦午夜伦| 亚洲女厕所小便bbb| 成人精品视频.| 久久综合色播五月| 九九国产精品视频| 在线电影欧美成精品| 亚洲一区二区三区四区在线免费观看| 不卡欧美aaaaa| 国产人久久人人人人爽| 精品一区二区影视| 日韩欧美在线网站| 奇米四色…亚洲| 欧美美女视频在线观看| 亚洲aⅴ怡春院| 欧美三片在线视频观看| 亚洲国产精品一区二区www| 色噜噜偷拍精品综合在线| 亚洲视频中文字幕| 91蜜桃免费观看视频| 亚洲四区在线观看| 日本道色综合久久| 丝袜亚洲精品中文字幕一区| 欧美日韩精品欧美日韩精品|