我想「合併」兩個arrayLists,產生一個新的arrayList,它包含兩個組合arrayLists中的所有數字,但沒有任何重複的元素他們應該是有序的。我在下面提出了這個代碼。我通過它運行它,這對我來說很有意義,但是我不確定我是否可以使用<或>來比較getL(i)在arrayLists中。我將array1中的所有元素添加到plusArray中。然後,我正在通過plusArray並將其與array2進行比較,以查看是否有任何array2的元素存在於plusArray中。如果他們這樣做,我什麼都不做,但如果他們不這樣做,我試圖將它添加到正確的位置。也許我的嵌套for循環被錯誤地使用?注意:ArrayLists按用戶按升序排序。將兩個arrayLists合併到一個新的arrayList中,沒有重複和按順序,在Java中
ArrayList<Integer> plusArray = new ArrayList<Integer>();
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)
請發佈你得到的例外。 – 2012-03-29 01:02:28