Java | Фишки и трюки
7.21K subscribers
182 photos
29 videos
6 files
40 links
Java: примеры кода, интересные фишки и полезные трюки

Купить рекламу: https://telega.in/c/java_tips_and_tricks

✍️По всем вопросам: @Pascal4eg
Download Telegram
⌨️ Как управлять порядком элементов в LinkedHashMap?

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