Предположим, у меня есть два ArrayLists с оба имеют некоторые объекты в нем:Как убрать все, но что касается удвоений в Java?
Object a = new Object();
Object b = new Object();
Object c = new Object();
Object d = new Object();
ArrayList list1 = new ArrayList();
list1.add(a);
list1.add(a);
list1.add(a);
list1.add(b);
list1.add(b);
list1.add(c);
ArrayList list2 = new ArrayList();
list2.add(a);
list2.add(a);
list2.add(b);
list2.add(c);
list2.add(c);
list2.add(d);
ArrayList output = retainAllButRegardingDoubles(list1, list2);
Теперь я хочу, чтобы найти элементы, которые пересекаются с элементами другого массива, но в отношении двойников. Что касается «удвоения», я имею в виду следующее: если в списке 1 содержится три объекта A, а в списке 2 содержится дважды объект A, тогда возвращаемый массив будет содержать дважды объект A, потому что объект A встречается по крайней мере дважды в обоих массивах.
Так что я хочу, чтобы список Выведение быть следующим:
ArrayList {
a,
a,
b,
c
}
«а» происходит в обоих списках дважды, «Ъ» один раз и «с» один раз.
Есть ли библиотека для этого или мне нужно написать ее самостоятельно? Если да, то как?
Объясните более подробно, что это значит: относительно парных. – arjacsoh
Является ли порядок элементов важным для вашего вопроса или это просто случайно, что вы используете 'List' вместо' Set'? – Holger