[英]Implementation queue over Map.Entry<K, V>
我正在做我的作業。 我需要一個<key, value>
數據結構來存儲緩存。 此外,當新元素沒有空格時,我需要我的結構刪除最舊的項目(類似於LinkedHashMap.removeEldestEntry()
)。
我想在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>();
如果使用LinkedHashMap而不是使用迭代器移動的地圖中的第一個元素,因為LinkedHashMap按照您輸入的順序保持對的順序。 請注意,如果從地圖中獲取對象,則需要刪除並再次添加以保持linkedHashMap中對的順序
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.