在 Java 开发中,数组和 List 是非常常见的数据类型。有时我们需要将数组转换成 List 以便进行操作。本文将介绍四种将 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的四种方式小结
- MyBatisPlus利用Service实现获取数据列表 2023-01-13
- java对象的内存布局 2023-09-01
- SpringBoot项目中处理返回json的null值(springboot项目为例) 2024-02-01
- swagger配置正式环境中不可访问的问题 2023-01-02
- SpringMVC中的handlerMappings对象用法 2024-01-29
- Spring Boot中的微信支付全过程(小程序) 2022-11-16
- Java中枚举类的用法示例详解 2023-03-07
- SpringBoot从繁至简的框架基础教程 2023-06-10
- ShardingSphere解析SQL示例详解 2023-03-22
- JavaMail实现发送邮件(QQ邮箱) 2023-04-12
