我需要使用 LinkedHashMap
的 removeEldestEntry()
方法。
以线程安全的方式使用 LinkedHashMap 的
和 removeEldestEntry()
方法的最简单方法是什么?
最佳答案
您可以匿名扩展 LinkedHashMap
改变 removeEldestEntry(...)
的行为,然后将匿名类的实例包装在同步映射中。你没有提到你需要什么类型的参数,所以我使用 <String, Integer>
在这个例子中。
Map<String, Integer> map = Collections.synchronizedMap(new LinkedHashMap<String, Integer>() {
private static final long serialVersionUID = 12345L; // use something random or just suppress the warning
@Override
protected boolean removeEldestEntry(Entry<String, Integer> eldest) {
return size() > MAX_SIZE; // how many entries you want to keep
}
});
关于Java 线程安全的 LinkedHashMap 实现?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28653889/