Пересечение множеств в Java
Метод retainAll оставляет в множестве
только те значения, которые есть и во
второй коллекции. Копию первого набора
удобно брать через конструктор:
import java.util.Arrays;
import java.util.HashSet;
HashSet<Integer> left = new HashSet<>(Arrays.asList(1, 2, 3, 4));
HashSet<Integer> right = new HashSet<>(Arrays.asList(3, 4, 5, 6));
HashSet<Integer> common = new HashSet<>(left);
common.retainAll(right);
System.out.println(common);
Если общих элементов нет, результат пустой:
import java.util.Arrays;
import java.util.HashSet;
HashSet<String> a = new HashSet<>(Arrays.asList("a", "b"));
HashSet<String> b = new HashSet<>(Arrays.asList("x", "y"));
HashSet<String> common = new HashSet<>(a);
common.retainAll(b);
System.out.println(common);
Дан код:
import java.util.Arrays;
import java.util.HashSet;
HashSet<Integer> setA = new HashSet<>(Arrays.asList(1, 2, 3, 4));
HashSet<Integer> setB = new HashSet<>(Arrays.asList(3, 4, 5, 6));
Найдите элементы, которые есть в обоих множествах. Выведите результат в консоль.
Дан код:
import java.util.Arrays;
import java.util.HashSet;
HashSet<Integer> set1 = new HashSet<>(Arrays.asList(1, 2, 3, 4, 5));
HashSet<Integer> set2 = new HashSet<>(Arrays.asList(4, 5, 6, 7, 8));
Найдите общие элементы set1 и
set2. Выведите их в консоль.