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技术站