retainAll изменяет исходное множество Метод оставляет в коллекции элементы, которые есть в переданной коллекции. Чтобы сохранить исходное множество, работайте с копией:
var left = Set.of(1, 2, 3, 4);
var right = Set.of(3, 4, 5);
var intersection = new HashSet<>(left);
intersection.retainAll(right);
System.out.println(intersection); // элементы 3 и 4
Порядок вывода HashSet не гарантирован. Вызов retainAll на неизменяемом множестве вроде Set.of(...) завершится UnsupportedOperationException. Возвращаемый boolean сообщает, изменилась ли коллекция, а не является ли пересечение непустым. #Java
Java Библиотека | Мы в Телеграм
var left = Set.of(1, 2, 3, 4);
var right = Set.of(3, 4, 5);
var intersection = new HashSet<>(left);
intersection.retainAll(right);
System.out.println(intersection); // элементы 3 и 4
Порядок вывода HashSet не гарантирован. Вызов retainAll на неизменяемом множестве вроде Set.of(...) завершится UnsupportedOperationException. Возвращаемый boolean сообщает, изменилась ли коллекция, а не является ли пересечение непустым. #Java
Java Библиотека | Мы в Телеграм
Просмотры: 216