概述
-
将
List<Integer>
或者Integer[]
转换为int[]
:首先要调用stream()方法将其转换为Stream<Integer>,再使用mapToInt()将其转换为IntStream,最后使用toArray()即可转换为int[]。 -
将
int[]
转换为List<Integer>
或者Integer[]
:首先调用Arrays.stream()方法,将int[]转化为IntStream,再用boxed()对其封装转化为Stream<Integer>,再转换为List<Integer>或者toArray()后进行类型转换变为Integer[]。 -
List<Integer>
与Integer[]
的相互转换:直接使用toArray()或者Arrays.asList()方法。不过要注意Object[]到Integer[]的类型转换。
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
public class Test {
public static void main(String[] args) {
int[] arr1 = {1, 2, 3};
// int[] 转 List<Integer>
// Arrays.stream将int[]转化为IntStream
// boxed()装箱,将IntStream转化为Stream<Integer>
// collect将Stream<Integer>转化为List<Integer>
List<Integer> list1 = Arrays.stream(arr1).boxed().collect(Collectors.toList());
// int[] 转 Integer[]
// 方法同上,在boxed()装箱这一步时已经转化为了Stream<Integer>
// 使用toArray()函数将其转化为数组
// 数组类型是Object[],所以最后进行类型转换
Integer[] integers1 = Arrays.stream(arr1).boxed().toArray(Integer[]::new);
// 或者
// Integer[] integers1 = (Integer[])Arrays.stream(arr1).boxed().toArray();
// List<Integer> 转 Integer[]
// 使用toArray()之后进行类型转换
Integer[] integers2 = list1.toArray(new Integer[]{});
// 或者
// Integer[] integers2 = (Integer [])list1.toArray();
// List<Integer> 转 int[]
// stream()先将List转换为Stream<Integer>
// 再通过mapToInt(),使用Integer::valueOf方法,将Stream<Integer>转换为IntStream
// IntStream的toArray()方法默认将其转化为int[]
int[] arr2 = list1.stream().mapToInt(Integer::valueOf).toArray();
// Integer[] 转 int[]
// 思路同上,先将Integer[]转成Stream<Integer>,再转成IntStream。
int[] arr3 = Arrays.stream(integers1).mapToInt(Integer::valueOf).toArray();
// Integer[] 转 List<Integer>
// 直接调用Arrays.asList()方法即可
List<Integer> list2 = Arrays.asList(integers1);
}
}
最后
以上就是正直玫瑰为你收集整理的Java中Integer[]、int[]、List互转的全部内容,希望文章能够帮你解决Java中Integer[]、int[]、List互转所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复