草庐IT

Arraylist

全部标签

java - 公开内部集合项时应该使用 Iterator 还是 Iterable?

我有一个带有私有(private)可变数据列表的类。我需要在以下条件下公开列表项:列表不应在外部修改;使用getter函数的开发人员应该清楚,他们获得的列表无法修改。应将哪个getter函数标记为推荐方法?或者你能提供更好的解决方案吗?classDataProcessor{privatefinalArrayListsimpleData=newArrayList();privatefinalCopyOnWriteArrayListcopyData=newCopyOnWriteArrayList();publicvoidmodifyData(){...}publicIterablegetU

java - JDK API 文档对于 ArrayList 构造函数不正确。那是一个错误吗?

ArrayListconstructor的JDK文档表示初始容量为10。这实际上是错误的,因为在列表中添加内容之前初始容量为0。我查看了OpenJDK的源码以及JDK自带的src.zip。我知道这是一项性能优化,但这会被视为错误吗? 最佳答案 仅对JDK最多6个有效这不是错误。用于存储列表元素的内部数组的初始容量为10。这并不意味着列表的大小是10。只是创建了一个大小为10的空数组。当一个对象被添加到列表中时,指向最后一个元素的内部指针被移动一个。如果数组的容量不足,则创建另一个容量更大的数组,并将旧数组复制到新数组的第一部分。此时

java - 使用 HashSet 而不是 ArrayList 来传达意图?

假设我需要创建一个元素集合,其中的顺序可能重要也可能无关紧要。实际上,我计划做的就是使用迭代器。我注意到我的大多数同事使用ArrayList与LinkedHashSet/HashSet。我的问题是,如果我知道这些元素应该是唯一的,我应该使用集合还是列表?实际上它并没有真正产生影响,但是Set不是更有效地传达了元素是唯一的吗?我发现这对于大型企业应用程序来说是一个有趣的问题,原因如下:1)如果你不能保证代码的整体质量,使用Set是很危险的。为什么?因为equals()和哈希码可能会被错误地覆盖,因此使用Set可能会导致一些非常讨厌的问题。2)使用列表对future的变化更有弹性。如果出于

java - 为什么 Java 7 和 Eclipse 3.8 编译器无法使用新的 Java 7 菱形运算符编译 JDK 代码?

importjava.util.*;publicclassSimpleArrays{@SafeVarargspublicstaticListasList(T...a){returnnewArrayList(a);}}asList()取自java.util.Arrays的OraclesJDK实现。错误是error:cannotinfertypeargumentsforArrayListreturnnewArrayList(a);1error这是如何工作的?Oracle使用与我们相同的编译器。 最佳答案 注意:java.util.Arr

java - 如何将File[]数组内容添加到ArrayList中?

这个问题在这里已经有了答案:CreateArrayListfromarray(42个回答)关闭9年前。我有一个数组:File[]temp=null;我有一个文件类型的arrayList:ListtempList=newArrayList();现在我想将temp中的内容添加到tempList中。所以任何人都可以告诉我我该怎么做?

java - 读取由制表符分隔的文件并将单词放入 ArrayList

我正在做一个自学练习,以帮助我更多地了解Java,但我被困在这个问题上。我有以下txt文件:NameHobbySusyeatfishAnnagardeningBillybowlingwithfriends注意:姓名和爱好用制表符分隔读取所有行并将其放入arraylist(name,hobby)的最佳方法是什么。棘手的部分是eatfishorbowlingwithfriends有空格,它必须放在一个数组下,显然我不能对它进行硬编码。这是我当前的代码:publicvoidopenFile(){try{FileInputStreamfstream=newFileInputStream("te

java - 有没有一种首选方法可以将列表流收集到一个平面列表中?

我想知道,是否有一种首选方法可以从列表流获取包含流中所有列表元素的集合。我可以想到两种方法:finalStream>stream=Stream.empty();finalListone=stream.collect(ArrayList::new,ArrayList::addAll,ArrayList::addAll);finalListtwo=stream.flatMap(List::stream).collect(Collectors.toList());第二个选项对我来说看起来更好,但我猜第一个在并行流中更有效。是否有进一步的论据支持或反对这两种方法之一?

java - Maven clean 命令 : java. util.Collections.UnmodifiableRandomAccessList 到 java.util.ArrayList 类型的属性

执行cleanmaven命令时,出现如下错误:Failedtoexecutegoalorg.codehaus.mojo:findbugs-maven-plugin:3.0.0:findbugs(findbugs)onUnabletoparseconfigurationofmojoorg.codehaus.mojo:findbugs-maven-plugin:3.0.0:findbugsforparameterpluginArtifacts:Cannotassignconfigurationentry'pluginArtifacts'withvalue'${plugin.artifact

java 类型删除与 Field#getGenericType 和 Method#getGenericReturnType

据我了解,泛型是Java的编译时特性,编译后的字节码中不存在参数化类型信息。我现在发现了Field#getGenericType和Method#getGenericReturnType方法,从而打破了我的世界观。请帮我拼凑一下。 最佳答案 仅运行时类型的对象被删除。例如:Objectobj=newArrayList();obj.getClass()将返回ArrayList.class.你甚至可以说ArrayList有一个通用参数。但是没有办法判断是否obj创建为ArrayList,ArrayList,ArrayList,ArrayL

java - 在 Java 中从 WebService 返回一个 ArrayList

我在从网络服务(Java)返回ArrayList时遇到问题。我已经编写了一个测试Web服务和使用它的客户端。一切似乎都工作正常-即客户端正在调用服务器并且服务器接收到操作请求。但是,我写了一个简单的方法,我希望它返回一个ArrayList。我的接口(interface)定义如下:@WebService@SOAPBinding(style=Style.RPC)publicinterfaceISQLServerConnectionWS{@WebMethodArrayListgetSimpleArrayList();}我有我的服务器端实现来返回ArrayList:@WebService(en