Рубрики
Без рубрики

Преобразование между массивом и набором в Java

Как преобразовать между массивом и набором с использованием простых коллекций Java, Guava или Apache Commons.

Автор оригинала: Eugen Paraschiv.

1. Обзор

В этой короткой статье мы будем смотреть на преобразование между массив и Установить – сначала с помощью простой Java, затем Гуава и библиотеки коллекций Викисклада от Apache.

Эта статья является частью серии “Java – Назад к основным” здесь, на Baeldung.

2. Преобразование массива в набор

2.1. Использование простой Java

Давайте сначала посмотрим, как превратить массив в Установить с помощью простого Java :

@Test
public void givenUsingCoreJavaV1_whenArrayConvertedToSet_thenCorrect() {
    Integer[] sourceArray = { 0, 1, 2, 3, 4, 5 };
    Set targetSet = new HashSet(Arrays.asList(sourceArray));
}

Кроме того, Установить могут быть созданы сначала, а затем заполнены элементами массива:

@Test
public void givenUsingCoreJavaV2_whenArrayConvertedToSet_thenCorrect() {
    Integer[] sourceArray = { 0, 1, 2, 3, 4, 5 };
    Set targetSet = new HashSet();
    Collections.addAll(targetSet, sourceArray);
}

2.2. Использование Google Guava

Далее, давайте посмотрим на преобразование Гуавы из массива в набор :

@Test
public void givenUsingGuava_whenArrayConvertedToSet_thenCorrect() {
    Integer[] sourceArray = { 0, 1, 2, 3, 4, 5 };
    Set targetSet = Sets.newHashSet(sourceArray);
}

2.3. Использование коллекций Apache Commons

Наконец, давайте сделаем преобразование с помощью библиотеки коллекции Викисклада от Apache:

@Test
public void givenUsingCommonsCollections_whenArrayConvertedToSet_thenCorrect() {
    Integer[] sourceArray = { 0, 1, 2, 3, 4, 5 };
    Set targetSet = new HashSet<>(6);
    CollectionUtils.addAll(targetSet, sourceArray);
}

3. Преобразование набора в Array

3.1. Использование простой Java

Теперь давайте посмотрим на обратное – преобразование существующего набора в массив :

@Test
public void givenUsingCoreJava_whenSetConvertedToArray_thenCorrect() {
    Set sourceSet = Sets.newHashSet(0, 1, 2, 3, 4, 5);
    Integer[] targetArray = sourceSet.toArray(new Integer[0]);
}

Обратите внимание, что toArray (новый ТХ0) является предпочтительным способом использования метода в течение toArray (новый размер Т)) . Как доказывает в своем блог , кажется, быстрее, безопаснее и чище.

3.2. Использование Гуавы

Далее – решение Guava:

@Test
public void givenUsingGuava_whenSetConvertedToArray_thenCorrect() {
    Set sourceSet = Sets.newHashSet(0, 1, 2, 3, 4, 5);
    int[] targetArray = Ints.toArray(sourceSet);
}

Обратите внимание, что мы используем Ints API от Guava, поэтому это решение специфичен для типа данных, с который мы работаем.

4. Заключение

Реализация всех этих примеров и фрагментов кода можно найти на Гитхуб – это Maven основе проекта, поэтому она должна быть легко импортировать и работать, как она есть.