草庐IT

Arraylist

全部标签

java - 匿名添加对象时从 ArrayList 获取特定对象?

我已经为我的问题创建了一个简短的例子。我正在匿名创建对象列表并将它们添加到ArrayList。一旦项目在ArrayList中,我稍后返回并向列表中的每个对象添加更多信息。如果您不知道其索引,是否可以从列表中提取特定对象?我只知道对象的“名称”,但您不能执行list.get(ObjectName)或任何操作。推荐的处理方法是什么?我不想每次想要检索一个特定对象时都遍历整个列表。publicclassTestCode{publicstaticvoidmain(Stringargs[]){Cavecave=newCave();//LoopaddsseveralPartiestothecave

java - 我应该返回 List 还是 ArrayList?

我发现自己同意返回一个接口(interface)而不是一个具体的类。原因很简单,我要松耦合。但是会有其他影响或权衡吗? 最佳答案 最好返回最适合您的接口(interface)的通用类型。如果出于某些原因ArrayList本质上适合您要返回的数据,那么您应该使用它。通常List没问题,但如果返回值本质上是无序的,您也可以考虑使用Collection: 关于java-我应该返回List还是ArrayList?,我们在StackOverflow上找到一个类似的问题:

Java - 混合数组列表?

是否可以在ArrayList中存储混合的对象类型?如果是怎么办?这是我目前尝试过的:Listlist=newArrayList();list.add(newString("HelloWorld"));list.add(newInteger(1));list.add(newLong(1l));for(i=0;i但是它会抛出一个转换异常。在此先感谢您的任何意见! 最佳答案 这是你应该拥有的:Listlist=newArrayList();list.add(newString("HelloWorld"));list.add(newInte

java - 'programming to interfaces' 的最佳实践是否适用于局部变量?

有人告诉我,针对局部变量的接口(interface)编程是无用的,不应该这样做,因为它只会损害性能而没有任何好处。publicvoidfoo(){ArrayListnumbers=newArrayList();//dolist-ystuffwithnumbers}代替publicvoidfoo(){Listnumbers=newArrayList();//dolist-ystuffwithnumbers}我觉得性能影响可以忽略不计,但不可否认的是,使用ArrayList的列表语义并没有太大好处。有充分的理由选择一种方式吗? 最佳答案

java - 为什么不总是在 Java 中使用 ArrayLists 而不是普通的数组?

这里有一个小问题:为什么不总是在Java中使用ArrayLists?除了额外有用的功能外,它们显然具有与数组相同的访问速度。我理解它不能容纳原语的局限性,但这很容易通过使用包装器来缓解。 最佳答案 很多项目只使用ArrayList或HashMap或其他任何东西来处理他们所有的集合需求。但是,让我对此提出一个警告。每当您创建类并在整个代码中使用它们时,如果可能,请引用它们实现的接口(interface),而不是您用来实现它们的具体类。例如,而不是这个:ArrayListinsuranceClaims=newArrayList();这样

Java ArrayList 删除对象 - IndexOutOfBoundsException

我试图从ArrayList中删除一个对象,但我一直收到IndexOutOfBounds错误。现在有大量可用的信息可以说明为什么在迭代ArrayList同时删除时会发生这种情况,但我没有这样做。示例:ArrayLista=newArrayList();a.add('A');a.add('B');a.add('C');System.out.println(a);a.remove('A');System.out.println(a);打印[A,B,C]然后失败:java.lang.IndexOutOfBoundsException:Index:65,Size:3atjava.util.Arr

java - 使用 java 集合对 Person 的 ArrayList 进行排序

下面我使用的代码工作正常并输出名称,除了排序方法不起作用。我期待“Collections.sort(nameFromText);”按名字的字母顺序对ArrayList进行排序。我做错了什么?publicstaticvoidmain(String[]args)throwsIOException{//CreateandpopulatetextfileWritertextFile=newFileWriter("names.txt");String[]nameArray=newString[]{"TinaTully\n","BillSimpson\n","DanaSmith\n","Ralph

Java 按数字和字母顺序对具有自定义字段的 ArrayList 进行排序

publicclassProductimplementsSerializable{privateStringid;privateStringname;privatedoubleprice;privateintquantity;publicProduct(Stringid,Stringname,doubleprice,intquantity){this.id=id;this.name=name;this.price=price;this.quantity=quantity;}publicStringgetId(){returnid;}publicvoidsetId(Stringid){t

java - 在 Java 中,如何将 String 值与 String 类型的 ArrayList 进行比较?

我的要求是将String与包含字符串列表的ArrayList进行比较。谁能推荐我一下? 最佳答案 使用ArrayList.contains("StringToBeChecked");如果ArrayList中存在字符串,则此函数返回true,否则返回false。 关于java-在Java中,如何将String值与String类型的ArrayList进行比较?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.co

java - 从 ArrayList 更改为 Vector

我正在开发一款安卓游戏,我刚刚注意到自onTouchEvent在UI线程上运行,更新/渲染方法从单独的线程运行,它们都更新一个ArrayList其中包含实体。所以很明显,如果他们碰巧同时修改列表,他们就会发生冲突。我读到Vector类的使用与ArrayList完全相同唯一的区别是Vector是同步的,因此它们不会冲突。真的吗?如果是这样,它是否有任何性能问题或我应该关注的问题?我从来没有用过Vector上课前。编辑:我真正的意思是从ArrayListlist=newArrayList();到Vectorlist=newVector()但正如答案所说,Vector不推荐使用。所选答案解决