4 Ekim 2018 Perşembe

LinkedHashMap Sınıfı

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.
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