LinkedHashMap — это реализация Map, которая сохраняет порядок добавления элементов. Но что, если нужен порядок по использованию (LRU-кэш)? LinkedHashMap справится и с этим!Порядок добавления (по умолчанию):
java
import java.util.LinkedHashMap;
import java.util.Map;
public class LinkedHashMapExample {
public static void main(String[] args) {
Map<Integer, String> map = new LinkedHashMap<>();
map.put(1, "One");
map.put(2, "Two");
map.put(3, "Three");
System.out.println(map); // {1=One, 2=Two, 3=Three}
}
}
Порядок использования:
Передайте accessOrder = true в конструктор.
java
import java.util.LinkedHashMap;
import java.util.Map;
public class LRUExample {
public static void main(String[] args) {
Map<Integer, String> map = new LinkedHashMap<>(16, 0.75f, true);
map.put(1, "One");
map.put(2, "Two");
map.put(3, "Three");
map.get(2); // Используем ключ 2
System.out.println(map); // {1=One, 3=Three, 2=Two}
}
}
Можно переопределить метод
removeEldestEntry() для автоматического удаления старых записей.
@Override
protected boolean removeEldestEntry(Map.Entry<Integer, String> eldest) {
return size() > 3; // Удалять записи, если их больше 3
}
#Java #LinkedHashMap #LRU
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10🔥2