草庐IT

05-Collection

全部标签

java - 使用 Google Collection MapMaker?

我刚看到这个answerinSO其中提到GoogleCollectionMapMaker太棒了。我仔细阅读了文档,但无法真正弄清楚我可以在哪里使用它。任何人都可以指出一些适合使用MapMaker的场景。 最佳答案 这是我使用MapMaker的一种方式的快速示例:privatefinalConcurrentMapfooCache=newMapMaker().softValues().makeComputingMap(newFunction(){publicFooapply(Longid){returngetFooFromServer(

具有元素超时的 Java Collection 实现

是否有一些支持元素过期的集合实现。例如:CollectioncachedUsers=newExpirableList(10000);在哪里publicExpirableList(finallongtimeout){...}在给定时间后(在这个特定示例中为10000ms),添加的元素将从集合中删除。通过使用它,我们将防止我们的cachedUsers集合溢出。 最佳答案 是的,Guava支持定时过期的缓存。参见GuavaExplained'spageoncaches.另一种方法是LRU(最近最少使用)缓存,它在插入新元素时处理最早访问的

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 - 如何根据 Collection 值的大小对 Map 进行排序?

我有一个像这样的HashMap:Map>map=newHashMap();map.put("USA",Arrays.asList("CA","IA","IL"));map.put("India",Arrays.asList("MUM","CAL"));map.put("Canada",Arrays.asList("TOR"));我想根据列表值的大小对map进行升序排序。我该怎么做?在这种情况下,我想订购加拿大、印度、美国的key。 最佳答案 HashMap没有保证的迭代顺序,因此您需要收集到LinkedHashMap为了使排序有意义

java - 如何在 Eclipse 中安装最新版本的 Xuggler(5.4,截至 18/05/2013)?

我真的不知道从哪里开始做这件事。我已经从站点下载了必要的Jar,并对如何在Eclipse中安装Xuggler进行了一些研究,但所有内容都已过时或无关紧要。我的系统是64位Windows8。大多数在vista和windows7中工作的东西应该与我的系统兼容,只要它们也是64位兼容的。我希望能够做的就是在Eclipse中使用它运行一个应用程序。任何建议、有用的解释将不胜感激。 最佳答案 您可以下载Xuggler5.4here还有一些jar来让它工作......commons-cli-1.1.jarcommons-lang-2.1.jar

java - 使用 Collection.stream 按特定属性动态分组

我正在尝试使用Java8Collection-Stream按多个属性对对象列表进行分组。这很好用:publicclassMyClass{publicStringtitle;publicStringtype;publicStringmodule;publicMyClass(Stringtitle,Stringtype,Stringmodule){this.type=type;this.title=title;this.module=module;}}Listdata=newArrayList();data.add(newMyClass("1","A","B"));data.add(new

java - 使用 Collection 接口(interface)创建 ArrayList 对象的多态性有什么好处?

我研究了多态性,了解到它可以像下面这样进行动态方法绑定(bind)。假设类Animal是抽象类。publicclassAnimalReference{publicstaticvoidmain(Stringargs[])Animalref//setupvarforanAnimalCowaCow=newCow("Bossy");//makesspecificobjectsDogaDog=newDog("Rover");//nowreferenceeachasanAnimalref=aCow;ref.speak();ref=aDog;ref.speak();}我曾经像这样创建ArrayLis

java - jsf-api-2.2.0-m05.jar 和 jsf-impl-2.2.0-m05.jar 中的 javax.faces-2.1.14.jar 有什么区别

我对javax.faces-2.1.14.jar与jsf-api-2.2.0-m05.jar和jsf-impl-2.2.0-m05.jar的区别感到困惑我试图在不使用maven的情况下创建一个jsf项目,并且在搜索示例时我在不同的教程中看到了不同的jar依赖项。教程来自coreservlets使用javax.faces-2.1.14.jar和我从不同站点看到的其他教程使用2个jar文件jsf-api-2.2.0-m05.jar和jsf-impl-2.2.0-m05.jar我想知道这两组依赖关系的区别。提前谢谢大家。 最佳答案 jsf

Java 四舍五入到最接近的 0.05

我正在尝试找到一种将值四舍五入到最接近的0.05的方法。例如:0.93舍入为0.950.81舍入为0.800.65保持0.650.68到0.700.67到0.65在Java中有没有一种简单的方法可以做到这一点? 最佳答案 执行此操作的一个选项如下:将该值乘以20。使用Math.round舍入到最接近的整数。再除以20。例如:doublerounded=Math.round(x*20.0)/20.0;希望这对您有所帮助! 关于Java四舍五入到最接近的0.05,我们在StackOverfl

java - 如何有条件地替换 Collection 中的值,例如 replaceIf(Predicate<T>)?

如果List或Collection中的值为null,是否有任何简单的方法可以替换该值?我们总能做到list.stream().filter(Objects::nonNull);并可能将0添加回列表。但我正在寻找的是类似list.replaceIf(Predicate)的API. 最佳答案 这只适用于List,不适用于Collection,因为后者没有替换或设置元素的概念。但是给定一个List,使用List.replaceAll()方法很容易做你想做的事情:Listlist=Arrays.asList("a","b",null,"c"