我试图“合并”两个arrayList,产生一个新的arrayList,其中包含两个组合arrayLists中的所有数字,但没有任何重复的元素,它们应该是有序的。我想出了下面的这段代码。我遍历了它,这对我来说很有意义,但是我不确定是否可以使用比较arrayLists中的get(i)。我将array1中的所有元素添加到plusArray中。然后,我将遍历plusArray并将其与array2进行比较,以查看是否array2的任何元素都存在于plusArray中。如果他们这样做,我什么也不做,但是如果他们不这样做,我将尝试将其添加到正确的位置。也许我嵌套的for循环使用不正确?注意:ArrayList由用户按升序进行预排序。
ArrayList plusArray = new ArrayList();
for(int i = 0; i < array1.size(); i++){
plusArray.add(array1.get(i));
}
for(int i = 0; i < plusArray.size(); i++){
for(int j = 0; j < array2.size(); j++){
if(array2.get(j) < plusArray.get(i)){
plusArray.add(i,array2.get(j));
}
else if(plusArray.get(i).equals(array2.get(j))){
;
}
else if(array2.get(j) > plusArray.get(i)){
plusArray.add(i, array2.get(j));
}
}
更新:我不再得到下面的异常。相反,该程序似乎永远运行。我更改了在条件中添加元素的位置。///这是我的数组列表为以下情况的异常:IntSet 1:{1
2} IntSet 2:{1 3 4}
Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
at java.util.Arrays.copyOf(Unknown Source)
at java.util.Arrays.copyOf(Unknown Source)
at java.util.ArrayList.grow(Unknown Source)
at java.util.ArrayList.ensureCapacityInternal(Unknown Source)
at java.util.ArrayList.add(Unknown Source)
at IntSet.plus(IntSet.java:92)
at IntSetDriver.main(IntSetDriver.java:61)
如果觉得《java arraylist 合并_在Java中将两个arrayList合并到一个新的arrayList中 没有重复且没有顺序...》对你有帮助,请点赞、收藏,并留下你的观点哦!