草庐IT

collection_check_boxes

全部标签

java - boolean containsAll(Collection<?> c) vs boolean addAll(Collection<? extends E> c); 的设计决策在集合框架中

这个问题在这里已经有了答案:GenericCollection(10个答案)关闭9年前。为什么booleancontainsAll(Collectionc);每种类型都允许集合框架的方法?。但是booleanaddAll(Collectionc);允许?extendsE。所以,我写了一个程序来澄清。这是我的程序publicclassContainAllTest{//takeServiceDtoArrayListresultList=newArrayList();voidTest(){ServiceDtoserviceDto=newServiceDto();serviceDto.setN

java - 当参数接受 Collection<X<?>> 时无法输入

这个问题来自javax.validation.ConstraintViolationException的构造函数的类型.它接受Set>作为参数。虽然很容易获得一组ConstraintViolation,其中X是具体类型,但似乎不可能从任何类型良好的API获得一组“ConstraintViolation”。如果不使用一些复杂的转换,就不可能将前者转换为后者。(转换为Set>,然后转换为Set>。)那么你们认为API错误还是我错了(为什么)? 最佳答案 API错误。除非实现需要添加新的ConstraintViolations到集合,它应

java - 通用子类型和通配符在 Collections.copy 中如何工作?

关闭。这个问题需要detailsorclarity.它目前不接受答案。想改进这个问题吗?通过editingthispost添加细节并澄清问题.关闭9年前。Improvethisquestion这是集合复制方法(部分):publicstaticvoidcopy(Listdst,Listsrc){for(inti=0;i有4个示例调用:Listobjs=Arrays.asList(2,3.14,"four");Listints=Arrays.asList(5,6);1.Collections.copy(objs,ints);2.Collections.copy(objs,ints);3.C

java - 当我们在 Collections.synchronizedMap() 中传递哈希表时会发生什么

今天我在面试中问了一个问题。问题是Collections.synchronizedMap()是用于同步map,默认情况下它不像hashmap那样是线程安全的。他的问题是我们可以在这个方法中传递任何类型的map。那么当我们在该方法中传递哈希表时会产生什么效果,因为哈希表默认情况下是同步的。 最佳答案 map的行为将是相同的,但性能会受到影响,因为每个方法将获取两个同步锁而不是一个。例如,考虑在生成的map上调用方法size()。Collections.SynchronizedMap类中的实现如下所示:publicintsize(){s

java - 如何使用 JDK 11 为 Collection.toArray() 提供生成器函数?

我已升级EclipsePhoton4.8(http://download.eclipse.org/eclipse/downloads/drops4/S-4.9M2-201808012000/)以支持JDK11(https://marketplace.eclipse.org/content/java-11-support-eclipse-photon-49)。它似乎工作正常(版本:4.9构建ID:I20180801-2000)。在JDK11中有一个新的方法覆盖toArray()在Java.util.Collection中:defaultT[]toArray(IntFunctiongene

java - 使用HttpClient的基于表单的身份验证-j_security_check

我正在尝试使用ApacheHttpClientJava库对使用基于表单的身份验证的网站(例如,facebook.com)进行身份验证。使用此网站的程序作为主要示例:http://www.elitejavacoder.com/2013/10/http-client-form-based-authentication.html,我能够做到这一点-但有些事情我对该程序不了解。这是代码:packagecom.elitejavacoder.http.client;importjava.util.ArrayList;importjava.util.List;importorg.apache.htt

java - 使用 JIT 编译器的 Collections.emptyList 和空 ArrayList 的性能

使用Collections.emptyList()或空的ArrayList之间是否存在性能差异,尤其是在使用JIT编译器时?我可以想象-例如-JIT编译器不会执行内联或静态方法调用,因为执行的方法取决于类型。编辑我知道Collections.emptyList()返回一个不可变列表,而ArrayList是可变对象。我的意思是,如果我将一个或另一个作为参数传递给方法并且该方法不修改列表,是否会限制JIT编译器优化该方法的可能性?一个简单的例子(只是为了阐明我的意思):intsum(Listlist){intsum=0;for(inti=0;i如果我只使用ArrayList调用此方法,JI

java - 为什么Collection接口(interface)有equals()和hashCode()?

为什么Collection接口(interface)有equals(Objecto)和hashCode(),假设任何实现都默认有那些(继承自Object)? 最佳答案 来自CollectionJavaDoc:WhiletheCollectioninterfaceaddsnostipulationstothegeneralcontractfortheObject.equals,programmerswhoimplementtheCollectioninterface"directly"(inotherwords,createaclas

java - 何时返回 Iterable<String> 而不是 List、Set、Collection?

所以我一直在相当广泛地使用Neo4jAPI,我注意到它们几乎总是有返回Iterable而我一直认为最好返回Set、List或Collection之一,除非有令人信服的理由不这样做。设置为向用户表明它永远不会有重复的元素,当顺序很重要或包含重复元素时为List,或者当您没有策略时为Collection。与Iterable相比,我更喜欢它们,因为它们具有有用的实用程序,如.contains()、.add()等。我发现我经常需要编写代码将Iterable转换为Collection。所以我的问题是:我是否遗漏了一些重要的东西?使用Iterable而不是Collection是否有合理的理由?你什

java - 是否可以保证 java.util.Collections.shuffle() 背后的算法在未来的 Java 版本中保持不变?

在未来的java版本中,以下程序是否保证生成具有相同内容和顺序的列表?importjava.util.ArrayList;importjava.util.Arrays;importjava.util.Collections;importjava.util.List;importjava.util.Random;publicclassTest{publicstaticvoidmain(String[]args){Listlist=newArrayList(Arrays.asList("A","B","C","D"));Collections.shuffle(list,newRandom(