使用 Guava 装饰 Map 使其表现得像 Set
Decorate a Map to behave like a Set using Guava
Google Guava 中是否有实用程序 class 允许我装饰 Map
使其像 Set
一样运行?
HashSet
是使用 HashMap<K, Object>
实现的,其中值始终是 Object
的相同实例。我想对从 LoadingCache
:
返回的 Map
做同样的事情
Set<K> mySet = XXX.decorate(CacheBuilder.newBuilder().expireAfterWrite(10, TimeUnit.SECONDS).build().asMap())
为了给我一个Set
插入后10秒数据过期
番石榴里有class吗?我见过 ForwardingSet
但它只适用于另一个 Set
实例。
您可以使用 JDK 的 Collections#newSetFromMap(Map<K, Boolean>)
:
Set<K> mySet = Collections.newSetFromMap(
CacheBuilder.newBuilder()
.expireAfterWrite(10, TimeUnit.SECONDS)
.<K, Boolean>build()
.asMap());
Google Guava 中是否有实用程序 class 允许我装饰 Map
使其像 Set
一样运行?
HashSet
是使用 HashMap<K, Object>
实现的,其中值始终是 Object
的相同实例。我想对从 LoadingCache
:
Map
做同样的事情
Set<K> mySet = XXX.decorate(CacheBuilder.newBuilder().expireAfterWrite(10, TimeUnit.SECONDS).build().asMap())
为了给我一个Set
插入后10秒数据过期
番石榴里有class吗?我见过 ForwardingSet
但它只适用于另一个 Set
实例。
您可以使用 JDK 的 Collections#newSetFromMap(Map<K, Boolean>)
:
Set<K> mySet = Collections.newSetFromMap(
CacheBuilder.newBuilder()
.expireAfterWrite(10, TimeUnit.SECONDS)
.<K, Boolean>build()
.asMap());