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日

相关文章

  • SpringBoot集成FastDFS+Nginx整合基于Token的防盗链的方法

    下面是 SpringBoot 集成 FastDFS+Nginx 整合基于 Token 的防盗链的方法的完整攻略: 简介 FastDFS 是一个开源的分布式文件系统,由阿里巴巴的余庆编写,目前由开源社区进行开发,FastDFS 是基于 Linux 的文件系统,实现了一个简单的文件系统,它是以 Tracker Server 和 Storage Server 为两…

    Java 2023年5月20日
    00
  • Spring Boot 中该如何防御计时攻击

    计时攻击是一种通过测量响应时间来推断出某些操作是否成功的方式。在Web应用程序中,计时攻击可以被用于探测密码的正确性、窃取加密令牌的密钥或破解加密算法等。 Spring Boot应用程序中要防御计时攻击,可以采取以下措施: 引入 Thymeleaf应用模板引擎,并且使用它提供的 th:if 和 th:unless 指令来控制用户输入的数据。示例代码如下: &…

    Java 2023年5月19日
    00
  • SpringMVC @RequestBody出现400 Bad Request的解决

    下面我为您详细讲解“SpringMVC @RequestBody出现400 Bad Request的解决”的完整攻略。 问题描述 在使用SpringMVC框架中,我们经常会用到 @RequestBody 注解来接收 HTTP 请求中的参数。但是,有时候我们会遇到使用 @RequestBody 得到 400 Bad Request 的错误响应码的情况。这是什么…

    Java 2023年5月26日
    00
  • jsp实现登录界面

    那么我们首先了解一下jsp实现登录界面的步骤: 创建一个jsp文件用于展示登录界面,包含用户名和密码输入框、登录按钮等组件。 编写一个servlet用于处理用户提交的登录表单数据,校验用户名和密码是否正确。 如果验证通过,将用户信息保存到会话中,然后跳转到登录成功的页面。 如果验证不通过,返回登录界面,并在界面上展示错误提示信息。 下面是一个示例: 创建一个…

    Java 2023年6月15日
    00
  • Spring Boot 优雅整合多数据源

    下面是 Spring Boot 优雅整合多数据源的完整攻略。 1. 背景 Spring Boot 为我们提供了非常便捷的开发方式,但在项目中使用多数据源时,代码会变得比较冗长和难以维护。所以,需要一种更加简洁优美的方式来整合多数据源。 2. 实现方式 Spring Boot 优雅整合多数据源的方式,主要是通过使用 Spring 自带的 AbstractRou…

    Java 2023年5月20日
    00
  • java语言注解基础概念详解

    Java语言注解是一种元数据机制,可以对Java代码进行标记和说明。注解是在Java 5中引入的一种新特性,它提供了在代码中添加元数据信息的简单方式。本文将介绍Java语言注解的基本概念。 Java注解的定义和基本语法 Java注解定义了一种语法格式,用来标记Java代码。Java注解的定义格式如下所示: @注解名(参数列表) public class Cl…

    Java 2023年5月26日
    00
  • java.util.concurrent.ExecutionException 问题解决方法

    当使用Java并发编程时,可能会遇到java.util.concurrent.ExecutionException异常。这种异常通常由调用一个返回Future类型的方法所引起,该方法启动一个异步任务,等待任务返回结果。在调用Future的get()方法获取结果时,如果任务执行过程中发生异常,那么get()方法会将异常包装在ExecutionException…

    Java 2023年5月19日
    00
  • Java关于数组的介绍与使用

    Java关于数组的介绍与使用 数组是一组数据的集合,是Java中的一种基本的数据结构类型,具有以下特点: 数组是一种固定大小,且元素类型相同的数据结构; 数组的下标从0开始; 数组在创建时需要指定长度,且长度不可改变; 数组可以存储基本类型和引用类型。 声明和初始化数组 声明数组的语法格式如下: dataType[] arrayName;//推荐 或 dat…

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