草庐IT

arrayList

全部标签

java - 为什么没有 ArrayList(T[] t) 构造函数?

以这种方式通过对象数组初始化列表是很常见的:Foo[]objs=...;ArrayListlist=newArrayList(Arrays.asList(objs));我想知道,为什么ArrayList的设计者没有包含以数组为参数的构造函数,以便它可以像这样初始化:ArrayListlist=newArrayList(objs);可能是违反了一些原则,线程安全还是别的什么? 最佳答案 我不知道为什么它不在标准库中,但是Guava的Lists类有newArrayList甚至有助于类型推断:ArrayListlist=Lists.new

java - 为什么标准 java 类的 clone() 返回对象而不是实际类型

java中允许指定函数返回类型,例如下面的代码publicclassTest{staticclassDad{Dadme(){returnthis;}}staticclassSonextendsDad{Sonme(){returnthis;}}}有效。让我们看看ArrayList类(class)。它已覆盖clone()函数(至少我在Oraclejdk1.7源码中看到了)publicObjectclone(){try{@SuppressWarnings("unchecked")ArrayListv=(ArrayList)super.clone();v.elementData=Arrays.

java - 如何将 double 添加到 Integer 的 ArrayList 中? ( java )

我试图理解如何将Double值放入Integer的ArrayList中。numList是Integer的ArrayList,它的值是Double。这是代码:packagebounded.wildcards;importjava.util.ArrayList;importjava.util.List;publicclassGenericsDemo{publicstaticvoidmain(String[]args){//InvarianceWorkaroundListnumList=newArrayList();GenericsDemo.invarianceWorkaround(numL

java - 如何显示数组列表中的所有元素?

假设我有一个带有属性make和registration的汽车类,我创建了一个ArrayList来存储它们。如何显示ArrayList中的所有元素?我现在有这段代码:publicCargetAll(){for(inti=0;i它编译得很好,但是当我使用这段代码在我的测试类中尝试它时:privatestaticvoidgetAll(Carc1){ArrayListcars=c1.getAll();//errorincompatibletypefor(Caritem:cars){System.out.println(item.getMake()+""+item.getReg());}}我收到

java - 如何静态初始化二维列表?

如何静态初始化多维列表?这个有效:List>list=newArrayList>();但我想用一些静态列表初始化列表,例如:(1,2,3)、(4,5,6)和(7,8,9) 最佳答案 这是一个旧答案,但情况有所改变。对于Java9+,这可以使用List.of()方法完成,该方法返回一个不可变列表,它是AbstractImmutableList的子类。importjava.util.List;List>list=List.of(List.of(1,2,3),List.of(4,5,6),List.of(7,8,9));对于旧版本的jav

Java:又是通配符

在我的最后question(谢谢所有回答我的人),我知道了List之间的区别和List.但是我还是看不出通配符的用处。我有两个ArrayList小号:ArrayListli=newArrayList(Arrays.asList(1,2,3));ArrayListls=newArrayList(Arrays.asList("one","two","three"));现在,看看下面的两个代码块:staticvoidprintList(ArrayListlist){for(Objectelem:list)System.out.print(elem+"");System.out.println

java - 从字符 ArrayList 中删除一个字符

我在循环中面临这种不需要的char到int的转换。假设我有这个字符列表,我想删除其中一个:Listchars=newArrayList();chars.add('a');chars.add('b');chars.add('c');chars.remove('a');//orchars.remove('a'-'0');所以'a'被解释为它的int值,我得到了一个IndexOutOfBoundsException异常。对此有任何简单的解决方法吗? 最佳答案 char被提升为int,它优先于自动装箱,所以remove(int)被调用而不是

Java返回一个空列表

我的Java方法如下;publicListfindAll(Stringlang){Queryquery=entityManager.createNamedQuery("Lookup.findAll");if(isValidLang(lang)){query.setParameter("lang",lang);returnquery.getResultList();}else{//returnemptylist}}现在该方法返回有效匹配lang的列表。但如果不是这种情况,我想返回一个空列表。我的问题是如何更新代码以及返回空列表以使代码不会失败的最佳方法是什么?

Java - 传递接口(interface)类型的ArrayList

我有一个Damageable接口(interface),如下所示publicinterfaceDamageable{publicvoidhandleCollision(floatimpulse);}一个实现这个接口(interface)的类,BaseObjectpublicclassBaseObjectimplementsDamageable现在在第三堂课中,我有一个BaseObject类型的ArrayListpublicclassObjectManager{publicArrayListbodies;我想做的是将ArrayList主体传递给另一个接受ArrayList的类的方法pub

java - 为什么我需要同步 Collections.synchronizedList 返回的列表

我在dos.oracle.com上找到了这个publicstaticListsynchronizedList(Listlist)Returnsasynchronized(thread-safe)listbackedbythespecifiedlist.Inordertoguaranteeserialaccess,itiscriticalthatallaccesstothebackinglistisaccomplishedthroughthereturnedlist.Itisimperativethattheusermanuallysynchronizeonthereturnedlist