int[] arr1 = {1, 2, 3};
Integer[] arr2 = Arrays.stream(arr1).boxed().toArray(Integer[]::new);
Arrays.stream(arr1)
Arrays.stream(int[] array)
是 Java 8 引入的流式操作 API,它接受一个 int[]
基本类型数组,并返回一个 IntStream
(基本类型 int
的流)。arr1
是 int[]
类型,所以 Arrays.stream(arr1)
返回一个 IntStream
。.boxed()
.boxed()
是 IntStream
的一个方法,用于将基本类型 int
的流 (IntStream
) 转换为包装类型 Integer
的流 (Stream
)。int
),所以在需要泛型操作(如 Stream
)时,必须使用包装类型(如 Integer
)。IntStream
转换为 Stream
。.toArray(Integer[]::new)
.toArray()
是流(Stream
)的终止操作,用于将流转换为数组。Integer[]::new
是一个数组构造器引用,相当于 size -> new Integer[size]
,告诉 toArray
方法生成一个 Integer[]
数组。Stream
被转换为 Integer[]
数组。如果是 double[]
转 Double[]
,写法类似:
double[] arr1 = {1.0, 2.0, 3.0};
Double[] arr2 = Arrays.stream(arr1).boxed().toArray(Double[]::new);
如果是 long[]
转 Long[]
:
long[] arr1 = {1L, 2L, 3L};
Long[] arr2 = Arrays.stream(arr1).boxed().toArray(Long[]::new);
//定义 Integer数组的两种方法
Integer[] numss = {4, 3, 5, 2, 6, 1,7};
Integer[] numss = new Integer[]{4, 3, 5, 2, 6, 1,7};
//Integer[]转int[],拆箱
Integer[] numss = new Integer[]{4, 3, 5, 2, 6, 1,7};
int[] nums = Arrays.stream(numss).mapToInt(Integer::intValue).toArray();
参与评论
手机查看
返回顶部