草庐IT

java - 为什么 checkNotNull() 没有注解 @Nonnull

我发现guava中的checkNotNull()前提条件没有用@Nonull注释标记,这很不方便。考虑以下示例:State(Setmodels,Setvariations){this.models=checkNotNull(models);this.variations=checkNotNull(variations);if(this.variations==null){thrownewIllegalArgumentException();}this.engine=createEngine();}因此IDE无法发现variations==null始终为false。是否有任何特殊原因导致

java - 2个系列之间的区别? (collection1 中的元素,但不在 collection2 中)

在Java中(也许使用Guava?),是否提供了一些方法来获取两个Collection的差异,例如一个List和一个Set没有修改这些Collection之一(否则会有collection1.全部删除(集合2)?在Guava中有Sets.difference(set1,set2),但它只适用于Set,不适用于任意集合。感谢任何提示! 最佳答案 您可以使用内置的Predicate过滤第一个Collection:Collections2.filter(c1,Predicates.not(Predicates.in(c2))它适用于任何类

java - 有任何 Guava 概述吗?

Guava库很强大,但我不确定这个库的所有可能性是什么。我找到了有趣的教程,例如http://scaramoche.blogspot.com/search/label/guava但是是否有关于图书馆可以做的一切的概述? 最佳答案 Guava添加了一个新资源:Guava说明:https://github.com/google/guava/wiki 关于java-有任何Guava概述吗?,我们在StackOverflow上找到一个类似的问题: https://st

java - HashBiMap 是线程安全的吗?

com.google.common.collect.HashBiMap的文档不要说明它是否是线程安全的。我想这意味着它不是,但我想我会问以防我错了。 最佳答案 HashBiMap内部使用了多个自定义哈希表,这些哈希表不是线程安全的。您应该使用以下方式同步对HashBiMap的访问:Maps.synchronizedBiMap(yourHashBiMap); 关于java-HashBiMap是线程安全的吗?,我们在StackOverflow上找到一个类似的问题:

java - Iterables.find 和 Iterators.find - 不是抛出异常,而是获取 null

我正在使用google-collections并尝试找到第一个满足Predicate的元素,如果不满足,则返回'null'。不幸的是,当没有找到元素时,Iterables.find和Iterators.find会抛出NoSuchElementException。现在,我不得不做Objectfound=null;if(Iterators.any(newIterator(...),my_predicate){found=Iterators.find(newIterator(...),my_predicate)}我可以用“try/catch”包围并做同样的事情,但对于我的用例,我会遇到很多没

java - 选择多重集中出现次数最多的元素

我可能想将问题改写为“如何选择Multiset中的第一项?”因为看起来Multiset已经根据频率排序了。我有一个MultisetmyList=Multiset.create();[maa00mfnt11malignlftmboldmlt18mflx3,caa00cfnt11calignlftcboldclt17cfl]我找不到任何类似myList.getIndex(0)的方法。请注意,最后,我需要具有最大频率的元素的数量。有没有这样的衬垫?还是我必须进行该迭代?更新:我正在使用以下方式获得最大频率:myList.count(Multisets.copyHighestCountFirs

java - Splitter 在简单的 Pattern 上爆炸

我刚开始用Guava代替GoogleCollection。Splitter类看起来很酷。但是当我使用它时,就像这样:privatestaticfinalPatternp=Pattern.compile("+");privatestaticfinalSplitterusSplitter=Splitter.on(p).trimResults();我得到一个堆栈转储:java.lang.NoSuchMethodError:com.google.common.base.Platform.precomputeCharMatcher(Lcom/google/common/base/CharMatc

java - Guava 根据另一个列表对列表进行排序的方式?

我有List包含我的用户的ID。在数据库查询之后,我正在检索List.我想根据第一个Id列表对这个列表进行排序。List可能不包括某些ID。排序此列表的Guava方法是什么? 最佳答案 使用Guava的完全“功能性”方式会将Ordering#explicit()与Ordering#onResultOf()结合起来publicclassUserService{@InjectprivateUserDaouserDao;publicListgetUsersWithIds(ListuserIds){Listusers=userDao.loa

java - 如何根据条目集过滤 map 条目

我正在使用googleguava12并有一张map:MaproomPrice;我有一套:Setpolicy;如何根据policy过滤roomPricemap中的条目并返回过滤后的map?filteredMap需要拥有来自policy的所有值。如果roomPricemap没有政策条目,我想改为输入默认值。 最佳答案 因为你有一组键,你应该使用Maps.filterkeys(),Guava还提供了一组非常好的谓词,您可以开箱即用。在您的情况下,类似于Predicates.in()应该可以。所以基本上你最终会得到:MapfilteredM

java - Guava Cache CacheStats 全部为零

我正在使用GuavaCachelib,我想检查缓存的统计信息,这是我的代码:refreshCache=CacheBuilder.newBuilder().refreshAfterWrite(1,TimeUnit.MINUTES).maximumSize(5).recordStats().build(newCacheLoader>(){publicMapload(Stringkey)throwsException{loader();}});stats=refreshCache.stats();delta=refreshCache.stats().minus(stats);}logger.