Преобразование массива в Set на Java — все способы с примерами

Чтобы понять этот пример, вам нужно знать следующие темы Java:

  • интерфейс Set;

  • класс HashSet;

  • массивы (Arrays).

Пример 1: преобразование массива в Set

import java.util.*;

public class ArraySet {

    public static void main(String[] args) {

        String[] array = {"a", "b", "c"};
        Set<String> set = new HashSet<>(Arrays.asList(array));

        System.out.println("Set: " + set);
    }
}

Вывод:

Set: [a, b, c]

В приведённой выше программе у нас есть массив с именем array. Чтобы преобразовать массив в множество (Set), мы сначала переводим его в список с помощью метода asList(), так как конструктор HashSet принимает список.

Затем мы инициализируем множество элементами из полученного списка.


Пример 2: преобразование массива в Set с помощью stream

import java.util.*;

public class ArraySet {

    public static void main(String[] args) {

        String[] array = {"a", "b", "c"};
        Set<String> set = new HashSet<>(Arrays.stream(array).collect(Collectors.toSet()));

        System.out.println("Set: " + set);

    }
}

Вывод программы такой же, как в Примере 1.

В приведённой выше программе вместо того чтобы конвертировать массив сначала в список, а потом в множество, мы используем поток (stream) для преобразования сразу в множество.

Сначала мы превращаем массив в поток методом stream(), а затем используем метод collect() с параметром toSet(), чтобы собрать поток в множество.


Пример 3: преобразование Set в массив

import java.util.*;

public class SetArray {

    public static void main(String[] args) {

        Set<String> set = new HashSet<>();
        set.add("a");
        set.add("b");
        set.add("c");

        String[] array = new String[set.size()];
        set.toArray(array);

        System.out.println("Array: " + Arrays.toString(array));

    }
}

Вывод:

Array: [a, b, c]

В приведённой выше программе у нас есть HashSet с именем set. Чтобы преобразовать множество в массив, мы сначала создаём массив длиной, равной размеру множества, и используем метод toArray().

Примечание

HashSet не сохраняет порядок добавления элементов, поэтому порядок элементов в полученном массиве может отличаться от порядка их добавления в множество.