Giriş
Elemanlar eklenildikleri sırada dolaşılabilir. Çünkü HashMap'ten kalıttığı için array tabanlı hash erişmine izin verir. İlaveten bir doubly linked list tutar. Böylece elemanlara ekleme sırasında erişim verir.
constructor - LRU
Şöyle yaparız. Üçüncü parametrenin ismi accessOrder olarak tanımlanmış. True olması gerekir. Belirtilen boyut aşıldıktan sonra removeEldestEntry metodunu çağırır.
Şöyle yaparız.
Elemanlar eklenildikleri sırada dolaşılabilir. Çünkü HashMap'ten kalıttığı için array tabanlı hash erişmine izin verir. İlaveten bir doubly linked list tutar. Böylece elemanlara ekleme sırasında erişim verir.
Iteration is guaranteed in insertion order.Bu sınıf yerine LRU amaçlı LRUMap Sınıfı kullanılabilir.
constructor - LRU
Şöyle yaparız. Üçüncü parametrenin ismi accessOrder olarak tanımlanmış. True olması gerekir. Belirtilen boyut aşıldıktan sonra removeEldestEntry metodunu çağırır.
public static <K, V> Map<K, V> createLRUMap(final int maxEntries) {
return new LinkedHashMap<K, V>(maxEntries*10/7, 0.7f, true) {
@Override
protected boolean removeEldestEntry(Map.Entry<K, V> eldest) {
return size() > maxEntries;
}
};
}
keySet metoduŞöyle yaparız.
KeyClass key = (KeyClass) yourShots.keySet().toArray()[yourShots.size()-1];
// Here you can access your desired method
Hiç yorum yok:
Yorum Gönder