草庐IT

software-collections

全部标签

java - 谷歌 Collection ( Guava 图书馆): ImmutableSet/List/Map and Filtering

假设您要构建一个ImmutableSet/List/Map对象的副本,但要过滤掉一些原始条目。一种实现方法如下:ImmutableList.copyOf(Iterables.filter(myObject,myObject.EQUALS));其中myObject.EQUALS是Iterables.filter()操作的谓词。我认为这是一个非常优雅且易于阅读的实现。然而,构建两个列表对象(第一个通过Iterables.filter(...)调用,第二个通过ImmutableList.copyOf(...))是非常低效的.有人知道更有效的方法吗?我想最好的办法是向ImmutableSet/

java - hibernate 组织. hibernate .LazyInitializationException : failed to lazily initialize a collection of role:

我有下面提到的实体类,当我执行我的应用程序时,出现以下异常。其他一些类似的问题没有解决问题。WARNING:StandardWrapperValve[jersey-serlvet]:PWC1406:Servlet.service()forservletjersey-serlvetthrewexceptionorg.hibernate.LazyInitializationException:failedtolazilyinitializeacollectionofrole:test.entity.Dept.empDeptno,nosessionorsessionwasclosedator

java - 为什么 Collections.frequency 在转换后的列表上没有按预期工作?

我过去使用过Collections.frequency并且工作正常,但我现在遇到了问题,因为我使用的是int[]。基本上Collections.frequency需要一个数组,但我的数据是int[]的形式,所以我转换了我的列表但没有得到结果。我认为我的错误在于列表的转换,但不确定该怎么做。这是我的问题的一个例子:importjava.util.Arrays;importjava.util.Collection;importjava.util.Collections;publicclassstackexample{publicstaticvoidmain(String[]args){in

java - Guava Collection : limit permutation size

使用guava12Collections2.permutations(),我想知道是否可以限制排列的大小?更准确地说,我想获得n元素列表中的k大小排列的列表,而不是获取所有n大小排列的列表。目前,如果我传递一个包含4个水果的列表,permutations()当前将返回一个包含24个4大小排列的列表,尽管我只对检索感兴趣,例如,4个独特的大小为3的排列。假设我有一个包含4种水果的list:["Banana","Apple","Orange","Peach"]如果我只对大小3排列感兴趣,我希望返回以下内容:["Banana","Apple","Orange"]["Banana","Appl

java - 使用 Collections API 进行随机播放

我感到非常沮丧,因为我似乎无法弄清楚为什么Collectionsshuffling无法正常工作。假设我正在尝试打乱randomizer数组。int[]randomizer=newint[]{200,300,212,111,6,2332};Collections.shuffle(Arrays.asList(randomizer));出于某种原因,无论我是否调用shuffle方法,元素都保持完全相同的排序。有任何想法吗? 最佳答案 Arrays.asList不能与基元数组一起使用。改用这个:Integer[]randomizer=new

java - Java 中 iterable<Integer> 的 Collections.max 函数

JavaCollections.max仅采用可排序对象的集合。然而,由于集合不一定排序,我看不出有任何理由不为可迭代类型实现相同的max函数。Iterable>是否有max方法?在Java的标准库中? 最佳答案 虽然Guava不是Java的标准库,但它已经足够接近了......Ecom.google.common.collect.Ordering#max(Iterableiterable)例如Tmax=Ordering.natural().max(myIterable);至于为什么标准库没有实现,可能是因为aCollectionmu

java - Collections.shuffle(列表列表)

什么会促使人们使用这种方法?更新:我现在明白了。我喜欢Uri的理由“Shufflingisnotatrivialalgorithm”。这是千真万确的。 最佳答案 人们想要随机打乱有序的元素序列的原因可能有很多。例如,一副纸牌。洗牌不是一个简单的算法,正如排序不是-所以它很常见,需要一个库函数。至于为什么是列表——显然它必须是一个有序的集合,因此不是任何一般的集合。只保证列表及其子类型是有序的。Collections类不提供对数组的操作,但您可以(并且可能应该,为了性能)将ArrayList传递给此方法。

java - 为什么java.util.Collection不直接定义next(), hasNext()?

如果Collection定义了hasNext()而不是iterator().hasNext(),我们可以更轻松地编写循环:while(collection.hasNext()){…}代替:Iteratorit=collection.iterator();While(it.hasNext()){…}当然,我知道存在循环for(Ee:collection)的简单方法。为什么接口(interface)Iterator存在? 最佳答案 因为对于同一个Collection对象,您可以同时拥有多个有效的Iterator对象。这很有用。如果Col

java - Java中Collection类的性能

全部,我浏览了很多网站,这些网站发布了各种Collection类针对各种操作(即添加元素、搜索和删除)的性能。但我也注意到,它们都提供了不同的测试环境,即操作系统、内存、线程运行等。我的问题是,是否有任何网站/Material在最佳测试环境的基础上提供相同的性能信息?也就是说,配置不应成为任何特定数据结构性能不佳的问题或催化剂。[更新]:例如,HashSet和LinkedHashSet插入一个元素的复杂度都是O(1)。然而,BruceEckel的测试声称LinkedHashSet的插入将比HashSet花费更多的时间[http://www.artima.com/weblogs/view

java - 使用 Collections.frequency() 打印某些值

我有一个数组如下:int[]array={11,14,17,11,48,33,29,11,17,22,11,48,18};我想做的是找到重复的值,然后打印它们。所以我这样做的方法是转换为ArrayList,然后转换为Set并在Setstream/.ArrayListlist=newArrayList(array.length);for(inti=0;idup=newHashSet(list);然后我使用stream循环遍历它并使用Collections.frequency打印值。dup.stream().forEach((key)->{System.out.println(key+":