相关使用情况:缓存和计算映射
read input
if (correlation-id is already generated for this input)
{
lookup the correlation-id from the cache;
return correlation-id;
}
else
{
generate the correlation-id;
cache it;
return correlation-id;
}
约束: - 输入记录的数量可以去,直到500K因此不希望使用 强引用。 - 不希望产生一个单向哈希截至目前(我知道,如果我们 使用单向散列那么就没有必要缓存)
有人能告诉我如何使用ComputingMap这一点。我在问这个 ,因为javadoc中有一个注释说“它使用弱/软按键的等同性 ”。
什么类型的对象是你的钥匙和价值观? – 2010-01-15 00:08:57
现在的关键是一个Tuple对象(正确覆盖equals和hasCode)。你为什么问?是基于我用于键的输入类型的用法。 该值始终是一个字符串 – 2010-01-15 00:13:15
那么,就您而言,我不确定弱或弱的引用有多大意义。无论您的特定元组或id字符串是否发生垃圾收集,似乎都与您是否希望条目在缓存中被认为是陈旧的无关。您可以考虑使用过期时间(例如'.expiration(10,TimeUnit.MINUTES)')。将来你可以指定一个大小上限。 – 2010-01-15 21:16:56