御堂:
私は2つのリストの間の差を取得したいです。そして、これは私がやっているものです。
oldList = [1,1,2,2,3,3,4,4]
newList = [1,2,3,5]
List<Integer> add = new ArrayList<>(newList);
List<Integer> remove = new ArrayList<>(oldList);
add.removeAll(oldList);
remove.removeAll(newList);
私が望む結果
add = [5]
remove = [1,2,3,4,4]
しかし、removeAll()
すべての重複要素を削除します。私が受け取ったことの結果
add = [5]
remove = [4,4]
どうすれば入手できますadd
し、remove
リスト?ありがとうございました。
ある男 :
あなたは自分のコードの一部を記述する必要があるとしています。これだけで唯一のJavaコレクションライブラリを使用して行うことはできません。
import java.util.ArrayList;
public class MyList<T> extends ArrayList<T>{
public MyList(){
super();
}
public void specialRemoveAll(T[] list) {
for (T element : list) {
remove(element); // This only removes the first entry that matches 'element', not all matches
}
}
}