Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/357.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用番石榴装饰地图,使其表现得像一组_Java_Guava - Fatal编程技术网

Java 使用番石榴装饰地图,使其表现得像一组

Java 使用番石榴装饰地图,使其表现得像一组,java,guava,Java,Guava,Google Guava中是否有一个实用程序类,允许我装饰一个地图,使其成为一个集合 HashSet使用HashMap实现,其中值始终是对象的同一实例。我想对从加载缓存返回的映射执行同样的操作: Set<K> mySet = XXX.decorate(CacheBuilder.newBuilder().expireAfterWrite(10, TimeUnit.SECONDS).build().asMap()) Set mySet=XXX.decoration(CacheBuild

Google Guava中是否有一个实用程序类,允许我装饰一个
地图
,使其成为一个
集合

HashSet
使用
HashMap
实现,其中值始终是
对象的同一实例。我想对从
加载缓存
返回的
映射
执行同样的操作:

Set<K> mySet = XXX.decorate(CacheBuilder.newBuilder().expireAfterWrite(10, TimeUnit.SECONDS).build().asMap())
Set mySet=XXX.decoration(CacheBuilder.newBuilder().expireAfterWrite(10,TimeUnit.SECONDS.build().asMap())
为了给我一个
集合
,其数据在我插入后10秒过期

番石榴有这样的课程吗?我看到了
ForwardingSet
,但这只适用于另一个
Set
实例。

您可以使用JDK的:

Set mySet=Collections.newSetFromMap(
CacheBuilder.newBuilder()
.expireAfterWrite(10,时间单位为秒)
.build()
.asMap());
您可以使用JDK的:

Set mySet=Collections.newSetFromMap(
CacheBuilder.newBuilder()
.expireAfterWrite(10,时间单位为秒)
.build()
.asMap());

谢谢-所以它不在番石榴中的原因是因为它已经在JDK中了-这会教我先去番石榴!事实上,Guava中有这样的方法-但是它被弃用了,并且在旧的代码库中也有,因为
集合
在JDK1.6之前没有过(Guava过去支持JDK1.5+)。谢谢-所以它不在Guava中的原因是因为它已经在JDK中了-这将教会我先去Guava!实际上,Guava中有这样的方法——但它已经被弃用了,并且在旧的代码库中也有,因为
集合
在JDK1.6之前是没有的(Guava用于支持JDK1.5+)。
Set<K> mySet = Collections.newSetFromMap(
            CacheBuilder.newBuilder()
                    .expireAfterWrite(10, TimeUnit.SECONDS)
                    .<K, Boolean>build()
                    .asMap());