我想要一个具有最大尺寸的 Map 实现。我想将其用作缓存,因此一旦达到限制,就会删除最旧的条目。
我也不想引入对任何 3rd 方库的依赖。
最佳答案
您可以使用 LinkedHashMap像这样
您可以通过 LRU 或 FIFO 移除。
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;
}
};
}
关于java - 如何在达到限制时通过删除最旧的条目来限制 map 的最大大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11469045/