jjzjj

arrayList2

全部标签

java - ArrayList.clear() 是否也删除所有包含的对象?

假设我有一个以这种方式创建的ArrayList的ArrayList:ArrayList>listOfListsOfStrings=newArrayList>();如果我调用:listOfListsOfStrings.clear();以后尝试访问listOfListsOfStrings中的任何字符串时,总是会导致java.lang.NullPointerException吗? 最佳答案 不会,只会清除引用。如果不再存在对某个对象的引用,它可能会被垃圾回收,但您不会得到NPE,因为您无论如何都无法获得对该对象的新引用。

java - 在 ArrayList 中查找重复值的索引

我有一个ArrayList,它在差异差异索引处包含重复值。例如{"Indian","American","Chinese","Australian","Indian","Russian","Indian"}正如你所看到的值(value)-"Indian"存在于索引-0,4&6.我需要知道所有这些索引,其中"Indian"存在并创建一个数组列表。这是我的代码:publicvoidfilter(){categoryArray=Arrays.asList(category);for(Stringk:category){//Log.v("filter",filterTerm);if(k.equ

java - 插入到 ArrayList 的中间是移动对象还是引用?

将一个元素添加到JavaArrayList的末尾应该花费O(1)时间。然而,向中间添加一个元素必须将右半部分移动一个以维持顺序。这应该花费O(n)时间(实际上O(n/2)简化为O(n))。我的问题是:在原始内存中,这种移位是移动驻留在ArrayList中的对象本身,还是仅仅移动指向它们的引用?无论是哪种,时间复杂度都是一样的,但开销可能大不相同。将一堆巨大的对象移到一边以为中间的一个对象腾出空间可能比仅在内存中移动一些int大小的引用要大得多。所以:它是哪个?我倾向于猜测是引用被移动了,因为JavaList保存对堆上对象的引用,这些对象在内存中可能处于任何“顺序”。我对以上所有内容的表

java - 如何使用迭代器遍历二维 ArrayList?

我想遍历二维ArrayList,其中包括使用迭代器的String对象。我还想以一种让我选择是先水平(行)迭代还是垂直(列)迭代的方式进行迭代,方法是使用boolean值。我如何在Java中实现它?到目前为止我尝试了什么。publicclassIterateThisimplementsIterator{ArrayList>array;publicIterateThis(){array=newArrayList>();array.add(newArrayList());array.add(newArrayList());array.add(newArrayList());array.get

java - 在 java 中使用 ArrayList 时的深拷贝

我知道这是一件小事,但我想问这个问题。假设我有一个返回对象ArrayList的get方法。首先我们必须返回它的副本吗?如果是这样,它是否必须是ArrayList的深拷贝?当里面的对象不可变时,我们还需要做深拷贝吗?如果我们使用这种类型的构造函数ArrayListarr=newArrayList(collection);那么数组的元素是被复制还是仍然指向旧值?谢谢 最佳答案 这取决于您的用例。有时需要公开底层集合,有时则不然。例如,如果您想要为您的类利用集合方法,您可以返回基础集合(或基础集合的可修改View)。这使您类(class)

java - 是否有一种 Java 数据结构实际上是具有双索引和内置插值的 ArrayList?

我正在寻找具有以下特征的预构建Java数据结构:它应该看起来像ArrayList,但应该允许通过double而不是整数进行索引。请注意,这意味着您可能会看到与原始数据点不一致的指标(即,要求对应于键“1.5”的值)。编辑:为清楚起见,根据评论,我不打算更改ArrayList实现。我正在寻找类似的界面和开发人员体验。因此,返回的值可能会被插值。例如,如果键为1.5,则返回的值可能是键1.0处的值和键2.0处的值的平均值。将对键进行排序,但不能确保值单调递增。事实上,无法保证值的一阶导数是连续的(使其不适合某些类型的样条曲线)。请免费提供代码。为了清楚起见,我知道如何写这样的东西。事实上,

java - LinkedList 和 ArrayList 实现的区别?

这个问题在这里已经有了答案:关闭11年前。PossibleDuplicate:WhentouseLinkedListoverArrayList?我看到了ArrayList和LinkedList的API,它们似乎是一样的。除了它们的性能差异外,在添加、删除和迭代列表方面也有任何差异。ListarrList=newArrayList();ListlinList=newLinkedList();ListarrList或linList引用实际上是在实现相应的类。这到底是什么意思?

java - ArrayList排序最长序列

我不是要求任何人为我解决这个问题,我只是需要一点点插入,因为我不知道从哪里开始。我所知道的是我应该在其中实现集合并进行排序。编写一个longestSortedSequence方法,返回整数列表中最长排序序列的长度。例如,如果名为list的变量存储以下值序列:[1,3,5,2,9,7,-3,0,42,308,17]然后调用:list.longestSortedSequence()将返回值4,因为它是此列表中最长排序序列的长度(序列-3、0、42、308)。如果列表为空,您的方法应返回0。请注意,对于非空列表,该方法将始终返回至少为1的值,因为任何单个元素都构成一个排序序列。Assumey

java - ArrayList 删除与 removeAll

如果我想从数组列表中删除一个集合,使用什么更好?我认为ArrayList中的removeAll方法是为此任务而编写的,但在我编写的测试中,仅遍历对象并将它们单独删除要快几秒钟。您为此目的使用什么?编辑:我在grepcode上找到的removeAll调用batchRemove(c,false)的代码:privatebooleanMore...batchRemove(Collectionc,booleancomplement){700finalObject[]elementData=this.elementData;701intr=0,w=0;702booleanmodified=fals

java - Java 中使用 ArrayList 的基本冒泡排序

我正在实现一个比较器,但它不起作用,所以我想我应该编写一个基本的冒泡排序。int[]numbers={5,8,14,1,5678};inttempVar;for(inti=0;inumbers[j+1]){tempVar=numbers[j+1];numbers[j+1]=numbers[i];numbers[i]=tempVar;}}}for(inti=0;i本教程完全正确吗?https://blog.udemy.com/bubble-sort-java/我按照示例将其应用于数组列表中的姓氏,但结果有点古怪。Stringa;Stringb;Personc;Persond;for(in