草庐IT

arrayList

全部标签

java - JAXB Marshall Map<Integer, ArrayList<String>>

我有一个对象我想编码。@XmlRootElementpublicclassBoxItem{@XmlElementMap>intgerStringArrMap;BoxItem(){intgerStringArrMap=newHashMap>();for(inti=0;istringArrayList=newArrayList();for(intj=0;j现在假设我们有一个boxItem=newBoxItem()如果我调用jaxbMarshaller.marshal(boxItem,System.out);,每个条目的值为空。012如何将ArrayList中的元素编码到一个Map值中?

java - 继承、组合和默认方法

通常承认通过继承扩展接口(interface)的实现不是最佳实践,并且组合(例如,从头开始重新实现接口(interface))更易于维护。这是可行的,因为接口(interface)契约强制用户实现所有需要的功能。但是在Java8中,默认方法提供了一些可以“手动”覆盖的默认行为。考虑以下示例:我想设计一个用户数据库,它必须具有列表的功能。为了提高效率,我选择用ArrayList来支持它。publicclassUserDatabaseextendsArrayList{}这通常不会被认为是很好的实践,如果真的想要List的全部功能并遵循通常的“组合优于继承”的座右铭,人们会更喜欢:publi

java - 为什么 Java 的列表有 "List.toArray()",而数组没有 "Array.toList()"?

数组没有“toList”函数,所以我们需要“Arrays.asList”辅助函数来进行转换。这很奇怪:List有自己的函数可以转换为数组,但数组需要一些辅助函数才能转换为List。为什么不让数组具有“toList”功能,这种Java设计背后的原因是什么?非常感谢。 最佳答案 因为List实例是一个实际的对象,而数组(出于大多数意图和目的)是一个原始对象并且不公开方法。虽然技术上数组是一个对象,因此它们可以具有字段length和方法调用,例如clone(),但它们的类是在JVM编译后创建的。

java - 使用哪个 List 实现?

在我的程序中,我经常使用集合来存储对象列表。目前我使用ArrayList来存储对象。我的问题是:这是最佳选择吗?使用LinkedList可能更好?还是别的?要考虑的标准是:内存使用情况表现我需要的操作是:向集合添加元素遍历元素有什么想法吗?更新:我的选择是:ArrayList:)基于这个讨论以及以下讨论:WhentouseLinkedListoverArrayList?Listimplementations:doesLinkedListreallyperformsopoorlyvs.ArrayListandTreeList? 最佳答案

java - 如何将泛型类传递给 Java 中的方法?

假设我们有一个函数可以创建给定特定类的对象:publicstaticTcreateObject(Classgeneric){try{returngeneric.newInstance();}catch(Exceptionex){returnnull;}}我们可以很容易地使用该函数来创建非泛型类型的实例。publicstaticvoidmain(String[]args){Foox=createObject(Foo.class);}是否可以用泛型做同样的事情?publicstaticvoidmain(String[]args){ArrayListx=createObject(ArrayL

java - 如何增加Java中数组的大小?

我想在数组中存储用户所需数量的元素。但是我该怎么做。如果我要创建一个数组,我必须使用固定大小来创建。每次将新元素添加到数组并且数组变满时,我想将其大小更新为“1”。各种类型的代码都写累了,就是没搞定。如果有人能给我一个解决方案(如果可能的话用代码),那将会很有帮助。 最佳答案 不使用数组,而是使用java.util.List的实现,例如ArrayList。ArrayList有一个数组后端,它保存列表中的值,但数组大小由列表自动处理。ArrayListlist=newArrayList();list.add("somestring")

java - 如何获取参数化类实例

由于引入了泛型,Class被参数化,因此List.class生成Class。这很清楚。我无法弄清楚的是如何获取自身参数化类型的Class实例,即Class>。就像在这个片段中:publicclassGenTest{staticTinstantiate(Classclazz)throwsException{returnclazz.newInstance();}publicstaticvoidmain(String[]args)throwsException{//Isthereawaytoavoidwaringonthelinebelow//withoutusing@SuppressWar

java - 默认集合类型

假设您需要在Collection中存储/检索项目,不关心顺序,并且允许重复,您使用什么类型的Collection?默认情况下,我一直使用ArrayList,但我记得在某处读到/听到过,Queue实现可能是更好的选择。List允许在任意位置添加/检索/删除项目,这会导致性能下降。由于Queue不提供此功能,理论上它在不需要此功能时应该更快。我意识到所有关于性能的讨论都有些毫无意义,唯一真正重要的是衡量。不过,我很想知道其他人在Collection中使用什么,当他们不关心顺序并且允许重复时,为什么? 最佳答案 “这取决于”。你真正需要首

java - 优化 ArrayList.removeAll

很多人都说ArrayList.removeAll对于大型数组来说真的很慢。这article为ArrayList.removeAll速度提供了两个优化解决方案,但需要在类本身中实现它们,并且不能作为修复在外部使用。除了复制ArrayList源代码并使用我自己的版本之外,还有什么方法可以应用这种修复方法吗?编辑:我想我应该添加我对此的需求,因为可能有一种方法可以在没有ArrayList.removeAll的情况下做我想做的事情。我有两个列表,每个列表大约有70,000个longs。它们几乎完全相同,但是一个列表中的数字比第二个列表中的多一些,我想找到它们。我知道找到它们的唯一方法是执行fi

java - ArrayList.sort() 与 PriorityQueue

这个问题在这里已经有了答案:Java-PriorityQueuevssortedLinkedList(11个答案)关闭4年前。我需要支持比读取更多的插入并保持数据排序。哪个性能更好:使用提供比较器的PriorityQueue或使用ArrayList并在每次插入后调用.sort()?每次调用.sort()都感觉不对,但我说不清为什么。