I have two ArrayList as follows:
original: 12, 16, 17, 19, 101
selected: 16, 19, 107, 108, 109
There is a new library available underscore-java. It can do difference and intersection for lists and arrays. Live example.
Code example:
List original = Arrays.asList(12, 16, 17, 19, 101);
List selected = Arrays.asList(16, 19, 107, 108, 109);
List add = U.difference(selected, U.intersection(original, selected));
List remove = U.difference(original, selected);