11得票2回答
如何将值放入Guava的Cache类中的put()方法?

我对Guava 10中引入的CacheBuilder和Cache有些困惑。文档暗示可以覆盖值,但据我所知,Cache没有任何可执行此操作的方法。有什么想法吗? 我正在尝试构建一个Map,在读取或写入后的10秒内过期键。在查找值时,我希望返回先前设置的值,如果不存在,则计算默认值。 注意:此...

45得票4回答
Collections.unmodifiableSet()和Guava的ImmutableSet之间有什么区别?

ImmutableSet 的 JavaDoc 中说: 与 Collections.unmodifiableSet 不同,ImmutableSet 是一个包含自己私有数据的实例,不会发生更改。这个类对于公共静态 final 集合("常量集")非常方便,同时还允许您轻松地创建一个由调用者提...

19得票2回答
一个集合的视图是什么?

在使用Guava集合和阅读其文档时,我多次看到术语view。 我搜索了解这个上下文中视图是什么以及它是否在Guava之外使用的解释。在这里经常使用。这个来自Guava的类型名称中包含view。 我的猜测是,集合的视图是具有相同数据但以不同结构组织的另一个集合;例如,当我将java.util...

16得票3回答
在Java中,有没有一种优雅的方法来获取多个方法返回值中第一个非空值?

我相信你自己已经多次见过这种情况: public SomeObject findSomeObject(Arguments args) { SomeObject so = queryFirstSource(args); // the most likely source first, ...

11得票1回答
Redis和Guava Cache的对比

我编写了一个带有缓存机制的代码。 以前使用的是Guava缓存,现在考虑到需要集中式缓存,所以我正在将其迁移到Redis。 但是我很担心性能问题,因为与Guava相比,我发现Redis的性能急剧下降。 我测量了从缓存获取类对象的 API 的性能。在Guava的情况下,它为5ms,而在Redi...

8得票2回答
在guava中,为什么只使用“T”,而不是可能使用“? super T”?

为什么实用工厂方法常常使用特定的泛型参数(如 T),而不是有界通配符参数(如 ? super T)? 例如,Functions#forPredicate 的签名为: public static <T> Function<T, Boolean> forPredicat...

9得票3回答
如何基于一组条目过滤地图条目

我正在使用Google Guava 12,并拥有一个地图: Map<OccupancyType, BigDecimal> roomPrice; 我有一个集合: Set<OccupancyType> policy; 我该如何基于 policy 过滤 roomP...

26得票2回答
谷歌Guava是否比Apache Collections更难使用?

我在考虑让我的团队,包含不同技能水平的成员,使用Google Guava。在使用Guava之前,我会使用Apache Collections(或其泛型版本)。 相对于Apache Collections,Guava在某些方面似乎更加强大,但对于经验较少的程序员来说可能不太容易使用。以下是我认...

16得票2回答
Guava和Apache Commons Hash/Equals构建器比较

我想知道Guava与Apache Commons在equals和hashCode builder方面的主要区别。 equals: Apache Commons:public boolean equals(Object obj) { if (obj == null) { return...

7得票3回答
Guava集合:限制排列大小

使用guava 12的Collections2.permutations(),我想知道是否可以限制排列的大小? 更准确地说,我想在n个元素的列表中获取k个元素的排列列表,而不是获取所有n个元素的排列列表。 目前,如果我传递一个由4种水果组成的列表,permutations()将返回一个由2...