Объединение двух массивов в Java

Научитесь находить объединение двух массивов в Java с помощью API HashSet и Stream. В теории множеств объединение(обозначается как U) коллекции множеств — это множество всех элементов в коллекции.

Например, объединение двух массивов A и B представляет собой совокупность всех элементов, которые находятся либо в A, либо в B, либо и в A, и в B.

Союз

1. Объединение массивов с использованием HashSet

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

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

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

Integer[] arr1 = {0, 2};Integer[] arr2 = {1, 3};HashSet<Integer> set = new HashSet<>();set.addAll(Arrays.asList(arr1));set.addAll(Arrays.asList(arr2));Assertions.assertEquals(Set.of(0, 1, 2, 3), set);//convert to array, if neededInteger[] union = set.toArray(new Integer[0]);Assertions.assertArrayEquals(new Integer[]{0, 1, 2, 3}, union);

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

Мы можем использовать API потоков для итерации по элементам обоих потоков и использовать flatMap() для нормализации элементов обоих массивов в одном потоке, а затем собрать их в новый массив.

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

 Целое число[] arr1 = {0, 2};Целое число[] arr2 = {1, 3};Целое число[] объединение = Поток.of(arr1, arr2).flatMap(Поток::из).toArray(Integer[]::new);Утверждения.assertArrayEquals(новое целое число[]{0, 1, 2, 3}, объединение);

Подробнее: Как получить пересечение двух массивов

Прокрутить вверх