我需要使用removeEldestEntry()
的{{1}}方法。
以线程安全的方式使用LinkedHashMap
和LinkedHashMap's
方法最简单的方法是什么?
答案 0 :(得分:9)
您可以匿名扩展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
}
});
答案 1 :(得分:4)
java.util.Collections.synchronizedMap(map)返回由指定映射支持的同步(线程安全)映射。