У меня есть два ArrayList объекта с тремя целыми числами в каждом. Я хочу найти способ вернуть общие элементы двух списков. Есть ли у кого-нибудь идеи, как я могу этого добиться?
listA.retainAll(listB); // listA now contains only the elements which are also contained in listB.
Если вы хотите избежать влияния изменений в listA, то вам нужно создать новый.
List<Integer> common = newArrayList<>(listA); common.retainAll(listB); // common now contains only the elements which are contained in listA and listB.
List<Integer> common = listA.stream().filter(listB::contains).toList(); // common now contains only the elements which are contained in listA and listB.
Это всего лишь как минимум в два раза медленнее.
Ответ 2
Вы можете использовать операции пересечения множеств с вашими ArrayList объектами.