4
我正在做我的功課。我需要一個<key, value>
數據結構來存儲緩存。另外,當新元素沒有空間時(LinkedHashMap.removeEldestEntry()
的模擬),我需要刪除最舊的項目。Map.Entry的執行隊列<K, V>
我想通過Map.Entry<K, V>
實現一個排隊的分配。解決問題是否正確?
說明:
public class Queue<K, V>
{
protected LinkedList<MyEntry<K, V>> list;
public Queue() {
list = new LinkedList<MyEntry<K,V>>();
}
////
}
final class MyEntry<K, V> implements Map.Entry<K, V> {
private final K key;
private V value;
public MyEntry(K key, V value) {
this.key = key;
this.value = value;
}
@Override
public K getKey() {
return key;
}
@Override
public V getValue() {
return value;
}
@Override
public V setValue(V value) {
V old = this.value;
this.value = value;
return old;
}
}
然後:
Queue<String, String> queue = new Queue<String>();
請更精確地解釋任務。什麼是實施隊列的目的?你的變量在哪裏存儲元素的限制?那緩存怎麼樣? – user905686 2013-03-19 11:56:09
@ user905686,隊列的目的是簡單地刪除舊項目。在類Queue中存儲變量來存儲元素的限制。緩存是設置任務的抽象。 – Denis 2013-03-19 12:06:19
我想你可以從閱讀http://docs.oracle.com/javase/6/docs/api/java/util/LinkedHashMap.html開始,看看這個http://4.bp.blogspot.com /-_EMDb5HG8zU/UIcuKYhNrZI/AAAAAAAABPA/-aJ4t-OX6NY/s1600/page-caching-linkedhashmap.png。那麼你可能知道如何自己編寫代碼。這真的需要一些時間,所以我只是跳過編碼。 – cwhsu 2013-03-19 12:13:22