私はそれを実際に修正しました。私の新しいコードがあります。別のarrayListから1つのarrayListを引く
//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;
私は2つのArrayListを持っていると私は別の1つのArrayListを「引く」しようとしています。たとえば、配列リスト[1,2,3]
が1つあり、[0, 2, 4]
を減算しようとしている場合、結果のarrayListは[1,3]
になります。
私のコードは、arrayList1 = [4,6]
とarrayList2 = [6]
のように、私に[4]
の結果を与える場合があります。私は[1,2,4]
と[0,4,8]
ような何かをしようとした場合しかし、私はこの例外を取得:
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)
ここで私が出ているコードがあります。私はそれを介してテストを実行していると私はそれが動作するはずだと思う。ユーザーがこれらの配列リストを入力し、それらが事前にソートされている、私はハッシュまたはビッグオーも知らない。
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;
CS 251とは何ですか? – kukis
@kukis CS 251は、大学の2年次コンピュータサイエンスコースです。 –