文章目录
前言
本文记录下List<Integer>、int [ ]、Integer [ ]三者的快速转换。
涉及到一些Java8的特性,Stream流。
一、int [ ] 转其他
[参数解释] data(数组内数据任意):int[ ]类型。
int[] data = {5, 3, 3, 2, 1, 3, 4};
1.1 int [ ] 转 List< Integer >
// int[] 转 List<Integer>
List<Integer> list1 = Arrays.stream(data).boxed().collect(Collectors.toList());
1.Arrays.stream(data)将:int[ ] => IntStream
2.IntStream中的boxed()装箱:IntStream => Stream<Integer>
3.Stream的collect():将Stream<T> => List<T>
1.2 int [ ] 转 Integer [ ]
// int[] 转 Integer[]
Integer[] integers1 = Arrays.stream(data).boxed().toArray(Integer[]::new);
1.前两步同上:此时是Stream<Integer>
2.Stream的toArray,传入IntFunction<A[ ]> generator。返回Integer数组
二、List < Integer > 转其他
[参数解释] list1:LIst<Integer>类型
2.1 List< Integer > 转 Integer [ ]
// List<Integer> 转 Integer[]
Integer[] integers2 = list1.toArray(new Integer[0]);
调用toArray。传入参数T[ ] a。
2.2 List< Integer > 转 int [ ]
// List<Integer> 转 int[]
int[] arr1 = list1.stream().mapToInt(Integer::valueOf).toArray();
1.list1.stream() => Stream<Integer>
2.mapToInt()调用Integer::valueOf => IntStream
3.IntStream中默认toArray() => int[ ]
三、Integer [ ] 转其他
[参数解释] integers1:Integer[ ]类型。
3.1 Integer [ ] 转 int [ ]
// Integer[] 转 int[]
int[] arr2 = Arrays.stream(integers1).mapToInt(Integer::valueOf).toArray();
1.Arrays.stream(integers1)Integer[ ] => Stream<Integer>
2.mapToInt()调用Integer::valueOf => IntStream
3.IntStream中默认toArray() => int[ ]
3.2 Integer [ ] 转 List< Integer >
// Integer[] 转 List<Integer>
List<Integer> list2 = Arrays.asList(integers1);
调用Arrays.asList。