小编Mil*_*lic的帖子

在Java中将两个arrayLists合并到一个新的arrayList中,没有重复项和顺序

我正在尝试"组合"两个arrayLists,生成一个新的arrayList,其中包含两个组合arrayLists中的所有数字,但没有任何重复元素,它们应该按顺序排列.我在下面提出了这个代码.我经历过它,这对我来说很有意义,但我不确定我是否可以使用<或>来比较get(i)在arrayLists中.我将array1中的所有元素添加到plusArray中.然后我将通过plusArray并将其与array2进行比较,以查看arrayA的元素是否存在于plusArray中.如果他们这样做我什么都不做,但如果他们不这样做,那么我试图将它添加到正确的位置.也许我的嵌套for循环使用不正确?注意:ArrayLists由用户按递增顺序排序.

     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));
    }

}
Run Code Online (Sandbox Code Playgroud)

更新:我不再得到下面的例外.相反,程序似乎永远运行.我更改了<和>条件中添加元素的位置.///这是我的数组列表得到的异常: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 …
Run Code Online (Sandbox Code Playgroud)

java arraylist

46
推荐指数
7
解决办法
14万
查看次数

从另一个arrayList中减去一个arrayList

我有两个arrayLists,我试图从另一个"减去"一个arrayList.例如,如果我有一个arrayList [1,2,3]并且我试图减去[0,2,4],则得到的arrayList应该是[1,3].

List<Integer> a = new ArrayList<>(Arrays.asList(1, 2, 3));
List<Integer> b = Arrays.asList(0, 2, 4);
subtract(a,b) // should return [1,3]
Run Code Online (Sandbox Code Playgroud)

这是我的代码.

//returns a new IntSet after subtracting a from b
// .minus().toString()
ArrayList<Integer> minusArray = new ArrayList<Integer>();

    minusArray.addAll(array1);

    for(int i =0; i< minusArray.size(); i++){
        for(int j = 0; j < array2.size(); j++){
            if(minusArray.get(i).equals(array2.get(j))){
                minusArray.remove(i);
                if(i == 0){
                    ;
                }
                else if(j == 0){
                    ;
                }
                else{
                    i = 0;
                    j = 0;
                }
            }
            else{}
        }
    }

return minusArray;
Run Code Online (Sandbox Code Playgroud)

我的代码在某些情况下有效,比如if …

java

20
推荐指数
6
解决办法
5万
查看次数

标签 统计

java ×2

arraylist ×1