- 1. 方式一(最简单方式)
- 2. 方法二(Java 8 新特性)
- 3. 方式三(引入Jar包)
int[] ints = {1, 2, 3};
List intList = new ArrayList<>() ;
for(int i = 0; i < ints.length; ++i) {
intList.add(ints[i]) ;
}
intList.forEach(System.out::println);
//输出结果
1
2
3
2. 方法二(Java 8 新特性)
使用 Java 8 的新特性,使用 Stream 流 进行转换;
想了解 Stream API 的使用可以看这篇文章 Stream API 、Lambda 表达式详解
示例
//1.创建int数组
int[] ints = {1, 2, 3};
//2.调用 Arrays 类的静态方法 Stream() 把 ints 数组对象转换成流,这里要注意需要使用 boxed() 方法把IntStream 流转化成 Stream 流,因为转化成 Stream 流之后才能调用 collect() 收集方法获得List
List intList = Arrays.stream(ints).boxed().collect(Collectors.toList());
//3.最后打印输出,这里使用到了 Lambda 表达式和方法引用
intList.forEach(System.out::println);
//输出结果
1
2
3
示例中调用 boxed() 方法的原因:
调用 Arrays 类的静态方法 stream ,如果传入一个int数组的话,调用的是一个重构方法,返回的是一个 IntStream 流对象,而如果想调用 collect() 收集方法获得List,就必须把 IntStream 流对象转换成 Stream
同样 long、double数组也是这样操作:
示例
long[] longs = {1L, 2L, 3L};
double[] doubles = {1.23, 2.23, 3.23};
List longList = Arrays.stream(longs).boxed().collect(Collectors.toList()) ;
List doubleList = Arrays.stream(doubles).boxed().collect(Collectors.toList());
longList.forEach(System.out::println);
doubleList.forEach(System.out::println);
int、long、double 都属于基本类型,String 数组转成 List,就不需要使用 boxed() 方法
String 不属于基本类型,所以调用 Arrays 类的静态方法 stream 返回的就是 Stream 对象
示例
String[] strings = {"666" , "888" , "999"} ;
List stringList = Arrays.stream(strings).collect(Collectors.toList());
stringList.forEach(System.out::println);
//输出结果
666
888
999
3. 方式三(引入Jar包)
int[] ints = {1, 2, 3};
//int[]转Integer[]
Integer[] integers = ArrayUtils.toObject(ints);
//Integer[]再转List
List integerList = Arrays.asList(integers);
//输出integerList
integerList.forEach(System.out::println);



