Soustrayant une arrayList d'une autre arrayList

J'ai deux arrayLists et je suis en train de "soustraire" une liste de tableaux à partir d'un autre. Par exemple, si j'ai un arrayList [1,2,3] et je suis en train de soustraire [0, 2, 4] l'résultant arrayList doit être [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]

Voici mon code.

//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;

Mon code fonctionne dans certains cas, comme si arrayList1 = [4,6] et arrayList2 = [6] il va me donner une raison de [4]. Mais si je tente quelque chose comme [1,2,4] et [0,4,8]

- Je obtenir cette exception:

java.lang.IndexOutOfBoundsException: Index: 2, Size: 2
    at java.util.ArrayList.rangeCheck(Unknown Source)
    at java.util.ArrayList.get(Unknown Source)
    at IntSet.minus(IntSet.java:119)
    at IntSetDriver.main(IntSetDriver.java:62)

Voici le code que j'ai trouver. J'ai fait le test s'exécute à travers elle et pour moi, je pense que cela devrait fonctionner. Les entrées de l'utilisateur de ces arrayLists et ils sont triés, je ne sais pas, Hachage ou de la grande-O.

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

return minusArray;

source d'informationauteur Milwaukoholic