Java 数组转List的四种方式小结

Java 数组转 List 的四种方式小结

在 Java 开发中,数组和 List 是非常常见的数据类型。有时我们需要将数组转换成 List 以便进行操作。本文将介绍四种将 Java 数组转换成 List 的常用方法。

方法一:使用 Arrays.asList()

Arrays 类提供了一个 asList() 方法,可以将数组转换成 List。

SomeType[] array = { value1, value2, value3 };
List<SomeType> list = Arrays.asList(array);

需要注意的是,asList() 方法的参数必须是对象数组,而非基本类型数组。如果要使用基本类型数组(如 int[])转换成 List,需要先将其转换成对应的包装类型(如 Integer[])。

示例:

int[] intArray = {1, 2, 3, 4};
List<Integer> list = Arrays.asList(intArray); // 编译错误
Integer[] integerArray = {1, 2, 3, 4};
List<Integer> list = Arrays.asList(integerArray); // 正确

方法二:使用 ArrayList.addAll()

我们可以先创建一个空的 ArrayList,然后调用 addAll() 方法将数组中的所有元素添加到 ArrayList 中。

SomeType[] array = { value1, value2, value3 };
List<SomeType> list = new ArrayList<>();
Collections.addAll(list, array);

示例:

int[] intArray = {1, 2, 3, 4};
List<Integer> list = new ArrayList<>();
for (int i : intArray) {
    list.add(i);
}

方法三:使用 Java 8 的 Stream

Java 8 中引入了 Stream API,我们可以使用 Arrays.stream() 将数组转换成流,然后再调用 collect() 方法将其收集到一个新的 List 中。

SomeType[] array = { value1, value2, value3 };
List<SomeType> list = Arrays.stream(array).collect(Collectors.toList());

示例:

int[] intArray = {1, 2, 3, 4};
List<Integer> list = Arrays.stream(intArray).boxed().collect(Collectors.toList());

需要注意的是,基本类型数组不能直接转换成流,需要先调用 boxed() 方法将其转换成对应的包装类型流。

方法四:使用 Guava 的 Lists 类

Google Guava 是一个流行的第三方 Java 库,其中的 Lists 类提供了一个方法可以将任何类型的数组转换成 List。

SomeType[] array = { value1, value2, value3 };
List<SomeType> list = Lists.newArrayList(array);

示例:

int[] intArray = {1, 2, 3, 4};
List<Integer> list = Lists.newArrayList(Ints.asList(intArray));

需要使用 Guava 的 Ints 类将 int[] 数组转换成 List。

总结

本文介绍了四种将 Java 数组转换成 List 的常用方法,分别是使用 Arrays.asList()、ArrayList.addAll()、Java 8 的 Stream 和 Guava 的 Lists 类。需要根据实际情况选择合适的方法。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java 数组转List的四种方式小结 - Python技术站

(0)
上一篇 2023年5月26日
下一篇 2023年5月26日

相关文章

  • java中lambda表达式简单用例

    接下来我将为您详细讲解Java中Lambda表达式的简单用例攻略。 Lambda表达式简介 Lambda表达式是Java SE 8中新增的一个功能。它是一种匿名函数,它可以看做一种简化的、更紧凑的匿名内部类的写法。Lambda表达式的目的是使得Java语言更加紧凑、更易于读写。 Lambda表达式的语法 Lambda表达式的语法如下: (parameter1…

    Java 2023年5月26日
    00
  • springboot整合mybatis的超详细过程(配置模式+注解模式)

    Spring Boot整合MyBatis的超详细过程 MyBatis是一种优秀的持久层框架,可以帮助我们更好地管理数据库。在Spring Boot应用程序中,我们可以使用MyBatis来访问数据库。本文将详细讲解如何在Spring Boot应用程序中整合MyBatis,包括配置模式和注解模式。 步骤一:添加依赖 我们需要在pom.xml文件中添加以下依赖项:…

    Java 2023年5月15日
    00
  • java读取excel文件并复制(copy)文件到指定目录示例

    针对“java读取excel文件并复制(copy)文件到指定目录示例”,我为您提供以下攻略: 一、读取Excel文件 读取Excel文件需要用到Java中的POI工具包,具体的操作步骤如下: 添加依赖包 在Maven的pom.xml文件中添加如下的依赖: <dependency> <groupId>org.apache.poi<…

    Java 2023年5月19日
    00
  • Java之字节码以及优势案例讲解

    Java之字节码以及优势案例讲解 什么是Java字节码? Java字节码是Java源代码编译后得到的二进制字节码文件,其扩展名为.class,使用JVM(Java虚拟机)来运行。相比于源代码,Java字节码更加节省空间,并且可以跨平台运行。 Java字节码可以通过反编译工具获取到其源代码,但是由于编译后的代码进行了优化,所以反编译后的源代码可能不太容易阅读。…

    Java 2023年5月27日
    00
  • 浅谈Maven的安装及修改为阿里云下载依赖

    下面是详细的“浅谈Maven的安装及修改为阿里云下载依赖”的完整攻略。 一、Maven的安装 下载Maven:打开官方网站 https://maven.apache.org/download.cgi 找到最新的 Maven 安装包,选择apache-maven-x.x.x-bin.zip下载。 安装Maven:将下载的 Maven 安装包解压到指定目录下(如…

    Java 2023年5月20日
    00
  • javascript中字符串拼接详解

    下面是关于“javascript中字符串拼接详解”的完整攻略: 什么是字符串拼接 在JavaScript中,字符串拼接指将两个或多个字符串连接起来形成一个新的字符串。当需要将字符串组合在一起时,字符串拼接是非常常见的操作。在JavaScript中,字符串拼接有多种方法,我们将逐一介绍。 字符串拼接的基本方法 在JavaScript中,字符串拼接的基本方法是使…

    Java 2023年5月27日
    00
  • java的Hibernate框架报错“PropertyValueException”的原因和解决方法

    当使用Hibernate框架时,可能会遇到“PropertyValueException”错误。这个错误通常是由于以下原因之一引起的: 实体对象的属性值为null:如果您的实体对象的属性值为null,则可能会出现此错误。在这种情况下,需要检查您的实体对象并确保它们正确。 实体对象的属性值不符合要求:如果您的实体对象的属性值不符合要求,则可能会出现此错误。在这…

    Java 2023年5月4日
    00
  • 深度思考JDK8中日期类型该如何使用详解

    深度思考JDK8中日期类型该如何使用详解 JDK8引入了新的日期和时间API,旨在取代原先的Date和Calendar类。新的API提供了更好的易用性和可读性,同时也更加严格和健壮。在使用时间和日期时,应该尽量使用新的API。 LocalDate LocalDate是新API中表示日期的主要类。它是一个不可变的类,用于表示ISO-8601日历系统中的日期(年…

    Java 2023年5月20日
    00
合作推广
合作推广
分享本页
返回顶部