Пересечение двух массивов в Java

Научитесь находить пересечение между двумя массивами в Java с помощью класса HashSet. Пересечение — это группа общих элементов, которые присутствуют в обоих массивах.

Например, в массиве1 и массиве2 пересечение будет содержать элементы {4,5}.

Integer[] array1 = new Integer[]{1, 2, 3, 4, 5};Integer[] array2 = new Integer[]{4, 5, 6, 7};//Intersection elements : {4, 5}
Пересечение

1. Найти пересечение массивов с помощью HashSet

Чтобы получить пересечение двух массивов, выполните следующие действия:

  • Поместите первый массив в HashSet.
  • Используйте метод remainAll(), чтобы сохранить только элементы, присутствующие во втором массиве.

Программа на Java для получения пересечения двух целочисленных массивов и вывода результата.

 Целое число[] массив1 = новое целое число[]{1, 2, 3, 4, 5};Целое число[] массив2 = новое целое число[]{4, 5, 6, 7};HashSet set = new HashSet<>();установить.addAll(Arrays.asList(array1));установить.retainAll(Arrays.asList(array2));Утверждения.assertEquals(Набор.из(4, 5), набор);//преобразовать в массив, если необходимоInteger[] пересечение = set.toArray(new Integer[0]);AssertArrayEquals(new Integer[]{4, 5}, пересечение);

2. Использование потоков

Мы можем использовать API Stream для итерации по элементам массива и проверки его существования в другом массиве. Если элемент присутствует во втором массиве, он собирается в результат пересечения.

Использование потоков позволяет нам выполнять дополнительные действия над элементами пересечения в том же конвейере потоков и собирать результаты в различных типах целей.

 Целое число[] массив1 = новое целое число[]{1, 2, 3, 4, 5};Целое число[] массив2 = новое целое число[]{4, 5, 6, 7};Целое число[] пересечение = Массивы.поток(массив1).отчетливый().filter(x -> Массивы.asList(массив2).contains(x)).toArray(Integer[]::new);AssertArrayEquals(new Integer[]{4, 5}, пересечение);
Прокрутить вверх