原文: https://www.programiz.com/java-programming/examples/convert-array-set

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

示例 1:将数组转换为集

  1. import java.util.*;
  2. public class ArraySet {
  3. public static void main(String[] args) {
  4. String[] array = {"a", "b", "c"};
  5. Set<String> set = new HashSet<>(Arrays.asList(array));
  6. System.out.println("Set: " + set);
  7. }
  8. }

运行该程序时,输出为:

  1. Set: [a, b, c]

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

然后,使用转换后的列表的元素初始化set


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

  1. import java.util.*;
  2. public class ArraySet {
  3. public static void main(String[] args) {
  4. String[] array = {"a", "b", "c"};
  5. Set<String> set = new HashSet<>(Arrays.stream(array).collect(Collectors.toSet()));
  6. System.out.println("Set: " + set);
  7. }
  8. }

该程序的输出与示例 1 相同。

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

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


示例 3:将集转换为数组

  1. import java.util.*;
  2. public class SetArray {
  3. public static void main(String[] args) {
  4. Set<String> set = new HashSet<>();
  5. set.add("a");
  6. set.add("b");
  7. set.add("c");
  8. String[] array = new String[set.size()];
  9. set.toArray(array);
  10. System.out.println("Array: " + Arrays.toString(array));
  11. }
  12. }

运行该程序时,输出为:

  1. Array: [a, b, c]

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