有时候List
List
本文涉及到一些Java8的Stream API。如果没有接触过就先学会怎么用,然后再细细研究。
1、int[] 转 List
int[] data = {4, 5, 3, 6, 2, 5, 1};
List<Integer> list=Arrays.stream(data).boxed().collect(Collectors.toList());
(1)Arrays.stream(arr)
可以替换成IntStream.of(arr)
。
(2)使用Arrays.stream将int[]转换成IntStream。
(3)使用IntStream中的boxed()
装箱,将IntStream转换成Stream<integer>
(4)使用Stream的collect(Collectors.toList)
方法收集元素,将Stream<T>
转换成List<T>
2、int[] 转 Integer[]
int[] data = {4, 5, 3, 6, 2, 5, 1};
Integer[] arr=Arrays.stream(data).boxed().toArray(Integer[]:new);
前两步同上,此时是Stream<Integer>
。然后使用Stream的toArray,传入IntFunction<A[]> generator。 这样就可以返回Integer数组。不然默认是Object[]。
3、Integer[] 转 List
Integer[] integers={4, 5, 3, 6, 2, 5, 1};
List<Integer> list = Arrays.asList(integers);
这个就很简单了,通过Arrays类里的asList
方法将数组转换为List。
4、Integer[] 转 int[]
Integer[] integers={4, 5, 3, 6, 2, 5, 1};
int[] ints=Arrays.stream(integers).mapToInt(Integer::intValue).toArray();
map的意思是把每一个元素进行同样的操作。mapToInt会把输入的元素转换为int类型并输出。mapToInt(Integer::intValue)
方法返回的是IntStream。
5、List 转 int[]
List<Integer> list=new ArrayList<>();
int[] arr=list.stream().mapToInt(Integer::valueOf).toArray();
想要转换成int[]类型,就得先转成IntStream。这里就通过mapToInt()把Stream
6、List 转 Integer[]
List<Integer> list=new ArrayList<>();
Integer[] integers = list.toArray(new Integer[list.size()]);
这个也很简单,方法里的参数是一个数组,所以要规定长度。也有无参的方法,但是要进行转型,所以不推荐使用。