jjzjj

Arraylist

全部标签

Java - 使用类型参数初始化类

我在使用类型参数初始化类时遇到问题。这似乎是Java类型推断的一个缺点,我想知道是否有解决此问题的方法或实现此目的的更好方法。publicclassParentModel{}publicclassChildModelextendsParentModel{}publicclassService>{privateClassclassOfT;privateClassclassOfE;publicService(ClassclassOfE,ClassclassOfT){this.classOfE=classOfE;this.classOfT=classOfT;}}publicclassBusi

java - 我如何才能将 ArrayList<String> 插入到接受 List<Integer> 的构造函数中?

这个问题在这里已经有了答案:Javagenericstypeerasure:whenandwhathappens?(7个答案)关闭6年前。我有这门课:publicclassTestSubject{publicTestSubject(Listlist){}}我正在像这样实例化它并且不知何故它正在工作,即使我正在插入ArrayList进入接受List的构造函数:Liststrings=newArrayList();strings.add("foo");Constructorconstructor=TestSubject.class.getConstructor(List.class);Te

java - 比较大型列表并提取缺失数据

我有两个非常大的ArrayList,每个都包含数百万条数据。我想从List1中过滤掉List2中不存在的数据,反之亦然。我尝试过ApacheCollectionUtils,Java8流API,但没有成功。Java8并行流正在消耗所有CPU,CollectionUtils继续比较数据集而没有任何输出。POJO示例publicDataVO{privateStringid;privateStringvalue;...//getters/setters@OverridepublicinthashCode(){finalintprime=31;intresult=1;result=(prime*

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 - java中大量整数流的统计

我正在从文件中读取大量整数,最后我想从这些整数(中位数、均值、25thpercentile、75thpercentile等)中获取一些基本统计数据。我可以随时计算其中一些统计数字,但在我看来,计算第25/75个百分位数会很复杂。我认为最简单的方法是将整数放在一个列表中,然后从该列表中进行统计。但是,由于列表太大,可能会因为使用太多内存而减慢程序的速度。你们有什么建议吗?这是我获取数据的方式和我想到的两个选项:Scannerinput=newScanner(newFile("name"));ArrayListlits=newArrayList();while(input.hasNextL

Java Iterables "Resetting"带有每个 Foreach 构造的迭代器

我相信我已经注意到对于某些Iterables(比如这个IterableStringclass),要么创建了一个新的迭代器,要么迭代器以某种方式重置为每个新的foreach构造的开始,但这似乎不会发生在其他可迭代...例如,如果您运行以下代码:importjava.util.ArrayList;publicclasstest{publicstaticvoidmain(Stringargs[]){IterableStringx=newIterableString("ONCE");System.out.println("***");for(charch:x){System.out.print

java - 按值排序的 Map<K, V> 的前 N ​​个值

我有一个字符串列表。我想根据返回double的函数评估每个字符串。然后我想要前5个字符串,基于它们的计算值。如果少于5个,我想要全部(按顺序)。假设字符串是化合物,函数计算质量。该函数在计算上很昂贵;我需要对每个字符串进行一次评估。(不过,我只是在编造数据。)H2O=>18.5C12H11O22=>109.1HeNe=>32.0H2SO4=>54.37HCl=>19.114FeO3=>82.39Xe6=>281.9程序应返回按各自值顺序排列的前五个字符串。对于此样本数据:H20,HCl,HeNe,H2SO4,4FeO3.实际上,我真的不在乎顺序;我只需要任意顺序中最低的五个。我考虑过如

具有泛型集合的类的 Java 适当扩展设计

假设我得到了A、B、C类B延伸A和C还扩展了A.现在我有2个不同的类,我们称它们为MyClassB和MyClassC与ArrayList的成员一起和ArrayList恭敬地。由于在MyClassB中进行了许多操作和MyClassC相同且仅在不同类型的ArrayList上完成,我想创建一个新的抽象类MyClassA它将在ArrayList上执行相同的操作对于两个类,自A是Action相同的公共(public)部分。所以我尝试在新的MyClassA中创建一个方法接收一个列表作为参数并应该对该列表执行操作的类。但是,我不能通过ArrayList到它期望的方法ArrayList.那么我该怎么做

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

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