Разность множеств в Java
Метод removeAll убирает из множества
все значения, которые встречаются во
второй коллекции. На выходе остаются
только элементы первого набора:
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> diff = new HashSet<>(left);
diff.removeAll(right);
System.out.println(diff);
Порядок множеств важен: если поменять местами, результат другой:
import java.util.Arrays;
import java.util.HashSet;
HashSet<Integer> a = new HashSet<>(Arrays.asList(1, 2, 3, 4));
HashSet<Integer> b = new HashSet<>(Arrays.asList(3, 4, 5, 6));
HashSet<Integer> diff1 = new HashSet<>(a);
diff1.removeAll(b);
HashSet<Integer> diff2 = new HashSet<>(b);
diff2.removeAll(a);
System.out.println(diff1);
System.out.println(diff2);
Дан код:
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));
Получите элементы, которые есть в setA,
но отсутствуют в setB. Выведите
результат в консоль.
Дан код:
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));
Получите элементы, которые есть в setB,
но отсутствуют в setA. Выведите
результат в консоль.