Java中 list<Integer>, Integer [ ], int [ ] 的相互转换

文章目录

  • 前言
  • 一、int [ ] 转其他
    • 1.1 int [ ] 转 List< Integer >
    • 1.2 int [ ] 转 Integer [ ]
  • 二、List < Integer > 转其他
    • 2.1 List< Integer > 转 Integer [ ]
    • 2.2 List< Integer > 转 int [ ]
  • 三、Integer [ ] 转其他
    • 3.1 Integer [ ] 转 int [ ]
    • 3.2 Integer [ ] 转 List< Integer >


前言

本文记录下List、int [ ]、Integer [ ]三者的快速转换。
涉及到一些Java8的特性,Stream流。


一、int [ ] 转其他

[参数解释] data(数组内数据任意):int[ ]类型。

int[] data = {5, 3, 3, 2, 1, 3, 4};

1.1 int [ ] 转 List< Integer >

// int[] 转 List
List<Integer> list1 = Arrays.stream(data).boxed().collect(Collectors.toList());

1.Arrays.stream(data)将:int[ ] => IntStream
2.IntStream中的boxed()装箱:IntStream => Stream
3.Stream的collect():将Stream => List

1.2 int [ ] 转 Integer [ ]

// int[] 转 Integer[]
Integer[] integers1 = Arrays.stream(data).boxed().toArray(Integer[]::new);

1.前两步同上:此时是Stream
2.Stream的toArray,传入IntFunction generator。返回Integer数组


二、List < Integer > 转其他

[参数解释] list1:LIst类型

2.1 List< Integer > 转 Integer [ ]

// List 转 Integer[]
Integer[] integers2 = list1.toArray(new Integer[0]);

调用toArray。传入参数T[ ] a。

2.2 List< Integer > 转 int [ ]

// List 转 int[]
int[] arr1 = list1.stream().mapToInt(Integer::valueOf).toArray();

1.list1.stream() => Stream
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
2.mapToInt()调用Integer::valueOf => IntStream
3.IntStream中默认toArray() => int[ ]

3.2 Integer [ ] 转 List< Integer >

// Integer[] 转 List
List<Integer> list2 = Arrays.asList(integers1);

调用Arrays.asList。

你可能感兴趣的:(Java基础,java)