int数组,Integer数组以及List之间的相互转换
List转成Integer数组
list.toArray(new Integer[list.size()])
@Test
public void test01() {
List<Integer> list = new ArrayList<>();
list.add(1);
list.add(2);
list.add(3);
Integer[] array = list.toArray(new Integer[list.size()]);
}
List转成int数组
list.stream().mapToInt(Integer::intValue).toArray();
@Test
public void test02() {
List<Integer> list = new ArrayList<>();
list.add(1);
list.add(2);
list.add(3);
//mapToInt()把Stream<Integer>调用Integer::valueOf来转成IntStream,IntStream中默认toArray()转成int[]
int[] array = list.stream().mapToInt(Integer::intValue).toArray();
}
Integer数组转成List
Arrays.asList(T ...a)
@Test
public void test03() {
Integer[] arr = {12,13,15};
List<Integer> list = Arrays.asList(arr);
}
int数组转成List
Arrays.stream(数组名).boxed().collect(Collectors.toList())
@Test
public void test04() {
int[] arr = {12,13,15};
// 1.使用Arrays.stream将int[]转换成IntStream
// 2.使用IntStream中的boxed()装箱。将IntStream转换成Stream<Integer>
// 3.使用Stream的collect(),将Stream<T>转换成List<T>,因此正是List<Integer>
List<Integer> list = Arrays.stream(arr).boxed().collect(Collectors.toList());
}
Integer数组转成int数组
Arrays.stream(arr).mapToInt(Integer::valueOf).toArray()
@Test
public void test05() {
Integer[] arr = {12,13,15};
//先将Integer[]转成Stream<Integer>,再转成IntStream
int[] res = Arrays.stream(arr).mapToInt(Integer::valueOf).toArray();
}
int数组转成Integer数组
Arrays.stream(arr).boxed().toArray(Integer[]::new)
@Test
public void test06() {
int[] arr = {12,13,15};
//先将int[]装成intStream,然后使用boxed()进行装箱,得到Stream(Integer)
//然后使用Stream的toArray,传入IntFunction<A[]> generator,返回Integer[]
Integer[] res = Arrays.stream(arr).boxed().toArray(Integer[]::new);
}