草庐IT

Incident_Collection

全部标签

java - 为什么这么多方法使用 Collection 而不是 Iterable?

有了C#,我逐渐爱上了IEnumerable界面。在很多情况下,这就是您想要提供和接受的全部内容。此外,它在.Net库中也很有用。例如,您在List上有一个构造函数需要IEnumerable的类(class).我现在必须使用Java,自然想使用等效的Iterable界面。但是,似乎我真的不能在任何地方使用它。一切似乎都在使用扩展的Collection接口(interface)代替。为什么是这样?例如,您有ArrayList采用Collection的构造函数:Constructsalistcontainingtheelementsofthespecifiedcollection,inth

java - collection.stream().skip().findFirst()的效率

假设set是一个包含n元素的HashSet而k是一些int在0(含)和n(不含)之间。有人可以简单地解释一下当您这样做时实际发生了什么吗?set.stream().skip(k).findFirst();具体来说,这个的时间复杂度是多少?将spliterator()添加到Collection接口(interface)是否意味着我们现在可以比Java7更快地访问集合的“随机”元素? 最佳答案 当前的实现复杂度为O(k),更等同于:Iteratorit=set.iterator();for(inti=0;i当前的实现从不考虑顺序流的OR

java - 使用来自 java 的 scala.collection.immutable.Set 的示例

有没有熟悉Scala的人知道我如何使用scala.collection.immutable.Set来自java?我可以模糊地阅读scaladoc,但我不确定如何从java中调用像“-”这样的scala方法(我假设我只需要在我的类路径中包含一些scala.jar文件......?) 最佳答案 Scala将这些特殊符号写为$plus、$minus等。您可以通过针对scala.collection.immutable.HashSet运行javap来亲眼看到这一点。这允许您执行如下代码:Sets=newHashSet();s.$plus("

java - 在 java.util.Collection 和 java.lang.Iterable 中声明的方法 iterator(),它的超接口(interface)?

有人可以向我解释为什么方法是Iteratoriterator();吗?在java.util.Collection中定义?Collection已经扩展java.lang.Iterable;这种方法是多余的。这是为了方便吗? 最佳答案 CollectioninterfaceJava1.2中引入了CollectionsAPI。iterator方法出现了。然而,Iterableinterface直到Java1.5才被引入。Collection显式定义iterator的原因是因为它早于Iterable。Collection返回Iterator

Java + Count 从 int 数组中复制而不使用任何 Collection 或另一个中间数组

作为Java面试试卷的一部分,我有以下问题需要解决。但是我有点想知道如果没有任何Collection或中间Array,我如何实现它。问题:-在不使用任何集合或其他中间数组的情况下从int数组中计算重复项Inputvalues:-{7,2,6,1,4,7,4,5,4,7,7,3,1}Output:-Numberofduplicatesvalues:3Duplicatesvalues:7,4,1我已经实现了以下解决方案,但还没有完成。有人知道吗?谢谢。publicstaticvoidduplicate(intnumbers[]){for(inti=0;i 最佳答

java - hibernate insert to a collection 导致删除,然后再次插入集合中的所有项目

我有很多可能的关系CohortGroup和Employee。每当我将Employee插入CohortGrouphibernate时,都会从解析表中删除该组并再次插入所有成员,再加上新成员。为什么不直接添加新的?组内注解:@ManyToMany(cascade={PERSIST,MERGE,REFRESH})@JoinTable(name="MYSITE_RES_COHORT_GROUP_STAFF",joinColumns={@JoinColumn(name="COHORT_GROUPID")},inverseJoinColumns={@JoinColumn(name="USERID"

Java 反射 : Invoking Setter and Getter method for collection type Object

我有两个不同的用户定义对象包.....1)ws.lender.dto(allObjectsexistsinthispackagearesourceside).2)copl.com.dto(allObjectsexistsinthispackagearedestinationside).两侧的对象层次结构和对象名称不同。我想按字段将源端对象复制到目标端对象字段或通过使用反射的getter和setter。例如源端对象packagews.lender.dto;@XmlAccessorType(XmlAccessType.FIELD)@XmlType(name="CustomerAddress

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))它适用于任何类