Java 将数组转换为集合

2024年9月10日 | 阅读 6 分钟

在 Java 中,可以使用 Java 集合框架提供的各种方法将数组转换为集合。集合框架提供了一组接口和类来管理对象集合。要将数组转换为集合,可以遵循以下步骤:

  • 创建一个任何类型的数组并用元素填充它。
  • 使用 Arrays.asList() 方法将数组转换为 List 集合。

请注意,Arrays.asList() 返回一个由原始数组支持的固定长度列表。对列表的任何修改将直接影响数组,反之亦然。

  • 如果我们想要其他类型的集合,例如 Set 或 Queue,我们可以创建一个新集合,并将数组作为参数传递给构造函数。

在这里,HashSet 构造函数接受一个 Collection 作为参数,因此我们传入 Arrays.AsList() 的结果。

  • 如果我们想要一个可变的集合,可以独立于原始数组进行修改,我们可以创建一个所需集合类型的新实例,并单独添加元素。

Collections.addAll() 方法允许您将数组的元素添加到集合中。

  • 如果我们选择使用通用集合类型,例如 Collection 或 Iterable,我们可以使用 Arrays.stream() 方法与 collect() 方法结合来转换数组。

在这里,Arrays.stream() 将数组转换为元素流,而 collect() 使用 Collectors.toList() 收集器将元素收集到一个 List 中。

  • 使用 Apache Commons Collections 库: 如果您的项目中添加了 Apache Commons Collections 库,您可以使用 CollectionUtils.addAll() 方法将数组元素添加到集合中。

ArrayToCollectionExample.java

输出

1
2
3
4
5
  • 使用 Java 8 流: Java 8 引入了 Stream API,它提供了强大的函数式操作集合的功能。您可以使用流将数组转换为集合,如下所示:

ArrayToCollectionExample.java

输出

1
2
3
4
5

此方法允许您利用各种流操作,例如过滤、映射和排序(如果需要)。

  • 转换为不可修改的集合: 如果我们需要创建一个不可修改的集合,我们可以使用 Collections.UnmodifiableCollection() 或 Collections.UnmodifiableList() 方法来包装转换后的集合。

ArrayToUnmodifiableCollectionExample.java

输出

Error: null
1
2
3
4
5
  • 使用循环: 我们可以使用循环迭代数组元素,并将它们单独添加到集合中。

ArrayToCollectionWithLoopExample.java

输出

1
2
3
4
5

此方法为我们在将每个元素添加到集合之前对其执行其他操作或修改提供了灵活性。

  • 使用第三方库: 有许多可用的第三方库,例如 Guava 和 Eclipse Collections,它们提供了方便的数组到集合转换方法。您可以查看这些库的文档以了解它们特定的转换方法。

ArrayToCollectionWithGuavaExample.java

输出

1
2
3
4
5
  • 使用 Apache Commons 库的 ArrayUtils 和 Stream API: 如果您的项目中添加了 Apache Commons Lang 库,您可以结合使用 Stream API 和 ArrayUtils.toObject() 方法将数组转换为集合。

ArrayToCollectionExample.java

输出

1
2
3
4
5
  • 使用 StreamSupport 类和 Stream API: 我们可以使用 StreamSupport.stream() 方法结合 Iterable 实现来将数组转换为集合。

ArrayToCollectionExample.java

输出

1
2
3
4
5

当处理自定义数组类型或拥有自定义 Iterable 实现时,此方法非常有用。

  • 使用 LinkedList 类: 如果我们特别需要 LinkedList,我们可以通过迭代元素并将它们单独添加到列表中来转换数组。

ArrayToCollectionWithLinkedListExample.java

输出

1
2
3
4
5
  • 使用集合的 addAll() 方法: 如果我们已经有一个空集合,您可以使用 addAll() 方法将数组的元素添加到该集合中。

ArrayToCollectionWithAddAllExample.java

输出

1
2
3
4
5

这些附加主题为在 Java 中将数组转换为集合提供了更多选择。我们可以选择与我们特定用例一致并利用可用 Java 版本和库的方法。

总而言之,在 Java 中将数组转换为集合可以通过多种不同的技术完成。Java 集合框架提供了各种方法和接口来有效地管理对象集合。

方法的选择取决于特定的用例、所需的集合类型以及是需要可变集合还是不可变集合。了解每种方法的特性和行为,以便为特定情况做出正确的选择非常重要。


下一主题Java 事务 API