如何在Java中把数组转换为集合,如Set和List?实例教程

290 阅读4分钟

你好,Java程序员,如果你想知道如何在Java中把数组转换成集合,如Set或List,那么你就来对地方了。在过去,我曾分享 过 如何在Java中把ArrayList转换为HashMap ,在这个例子中,我们将学习如何 在Java中把一个字符串数组转换为Collection、 Set 或 List 。你可以使用 Java中的 辅助方法 Arrays.asList() 将数组转换为集合。 这是转换数组为List、Set或任何集合的捷径。这种将数组转换为集合的知识对任何Java开发者来说都是非常有用的,因为大多数传统的代码都倾向于使用数组,这意味着你要么需要将你的输入作为数组传递给他们,要么他们将结果作为数组返回。

由于新的Java代码 更 倾向于使用Collection而不是数组 ,他们应该这样做,因为Collection 类 提供了灵活性 ,我们经常需要将Array转换为不同的Collection类,如 List、 Set 或简单的Collection。这也是Joshua Bloch在《Effective Java 》一书中建议的最佳做法,是Java程序员的必读之作。

我已经展示了一些将数组转换为ArrayList 的技术,这些技术同样适用于在Java中将数组转换为List。在这篇文章中,我们将更进一步,不仅要学习将数组转换为List,还要学习 Java中 数组转换为 Set 和数组转换为Collection。

好吧,你只需要知道一个方法, Arrays.asList(),它接受一个数组并返回一个List,之后你可以通过使用Collection类提供的复制构造函数,将这个List转换成任何其他的Collection。

将数组转换为集合、集和列表的Java例子

正如我所说,这是一个小菜一碟,一旦你知道 Arrays.asList() 以及如何使用它,你就完成了。以后你可以使用Collection类提供的不同的转换构造函数,将一个集合转换为另一个集合,如List转换为Set等等。

下面是在Java中把数组转换为集合的步骤。

  1. 使用 Arrays.asList() 方法将数组转换为列表

  2. 将其存储为集合

下面是在Java中把数组转换为集合的步骤。

  1. 将数组转换为列表

  2. 通过复制列表中的对象创建集合

最后,在Java中把数组转换为列表的步骤。

  1. Arrays.asList() 返回一个List,所以不需要进一步转换。

如果你关注这个博客,那么你可能记得我们已经 在之前的文章中 看到了 Arrays.asList() 方法 的使用 ,如何在一行中创建和初始化List ,我们也在那里讨论了Arrays.asList() 方法 返回的 List 是一个固定长度的列表 ,这意味着它不支持add() 和 remove() 方法。

如果你试图从这个列表中添加或删除一个对象,你会得到 "Exception in thread "main" java.lang.UnsupportedOperationException"。顺便说一下,值得一提的是,这个List在Java中不是一个只读的List ,因为你仍然可以通过使用set(index) 方法来更新数值 。

在Java中把数组转换为列表和设置的Java程序

这里是完整的Java程序,可以将一个给定的数组转换为集合,然后再转换为任何类型的集合或列表,如Java中的HashSet或ArrayList。你也可以在你的应用程序中使用这段代码。

import

How to convert an Array to Collection like Set and List in Java? Example Tutorial

依赖性

在这里,我使用SL4J而不是Log4j做日志,这意味着你需要将日志语句转换为 System.out.println() 语句,或者你需要在Maven项目的 pom.xml 中加入以下依赖 ,或者 在Java程序的classpath中加入log4j-1.2.16.jar、 slf4j-api-1.6.1.jar 以及 slf4j-log4j12-1.6.1.jar 。

org.slf4j slf4j-log4j12 1.6.1

以上就是关于如何在Java中把数组转换为集合 的全部内容。我们已经看到了在Java中把字符串和整数数组转换为集合、列表和集的例子。你可以用同样的技术和方法Arrays.asList() 在Java中把任何数组转换为集合。

学习Java集合框架的相关Java教程

请记住,当你从数组中创建一个List时,你将获得与当前数组中的元素相同的顺序,但当你将它们转换为Set时,你将失去任何排序保证。