# Java 程序：将数组转换为集（`HashSet`），反之亦然

> 原文： [https://www.programiz.com/java-programming/examples/convert-array-set](https://www.programiz.com/java-programming/examples/convert-array-set)

#### 在此程序中，您将学习如何在 Java 中将数组转换为集合，反之亦然。

## 示例 1：将数组转换为集

```java
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);

    }
}
```

运行该程序时，输出为：

```java
Set: [a, b, c]
```

在上面的程序中，我们有一个名为`array`的数组。 要将`array`转换​​为`set`，我们首先使用`asList()`将其转换为列表，因为`HashSet`接受`list`作为构造器。

然后，使用转换后的列表的元素初始化`set`。

* * *

## 示例 2：使用流将数组转换为集

```java
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 相同。

在上面的程序中，我们不是使用`array`转换为`list`然后转换为`set`，而是使用`stream`转换为`set`。

我们首先使用`stream()`方法将数组转换为流，并使用`toSet()`作为参数的`collect()`方法将流转换为集合。

* * *

## 示例 3：将集转换为数组

```java
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));

    }
}
```

运行该程序时，输出为：

```java
Array: [a, b, c]
```

在上面的程序中，我们有一个名为`set`的`HashSet`。 要将`set`转换为`array`，我们首先创建一个长度等于集合大小的数组，并使用`toArray()`方法。