Есть ли класс карты, в котором все значения являются слабыми ссылками? Как WeakHashMap, но для значений вместо ключей.WeakHashMap со слабо обозначенными значениями вместо ключей
Спасибо заранее ...
Есть ли класс карты, в котором все значения являются слабыми ссылками? Как WeakHashMap, но для значений вместо ключей.WeakHashMap со слабо обозначенными значениями вместо ключей
Спасибо заранее ...
Вы можете использовать MapMaker, который является частью гуавы.
«Java DOC: мягких или слабые ключи, мягкие или слабые значения, приуроченные действия и вычисления по требованию значений: A ConcurrentMap строитель, обеспечивая любую комбинацию этих функций.»
ConcurrentMap<Key, Graph> graphs = new MapMaker()
.concurrencyLevel(32)
.softKeys()
.weakValues()
.expiration(30, TimeUnit.MINUTES)
.makeComputingMap(
new Function<Key, Graph>() {
public Graph apply(Key key) {
return createExpensiveGraph(key);
}
});
Это в значительной степени настраивается.
Не будет ли это просто «Карта>'? –
user2864740
@ user2864740: Это не будет автоматически очищать записи для собранных мусора значений. – user2357112
Существует 'com.sun.beans.WeakCache', который имеет как слабые клавиши, так и слабые значения, но вы не должны его использовать. – EJP