Допустим, я определил список:
List<String> cards = new ArrayList<>();
cards.add("king");
cards.add("queen");
cards.add("king");
cards.add("king");
cards.add("prince");
cards.add("queen");
cards.add("prince");
Итак, у этого ArrayList есть 3 "королевских" объекта String, 2 "королева" и 2 "принц". Пока все хорошо.
Теперь я хочу определить новый список:
List<String> toRemove = new ArrayList<>();
toRemove.add("king");
toRemove.add("king");
toRemove.add("queen");
toRemove.add("queen");
toRemove.add("prince");
Итак, у этого ArrayList есть 2 "короля", 2 "ферзя" и 1 "принц". Теперь, если я сделаю:
cards.removeAll(toRemove);
Будет ли это учитывать дубликаты объектов?
Если вы вычтите список toRemove из списка карт, у вас останется 1 "король" 0 "королева" и 1 "принц". Правильно?
Но будет ли функция removeAll распознавать наличие дублированных объектов и не будет пытаться удалить все вхождения "king", "queen" и "prince" с карт, поэтому у меня останется пустой список (карточки)?
будет ли окончательный список {"король", "принц"} или пустой список {}?