网站首页 全球最实用的IT互联网站!

人工智能P2P分享Wind搜索发布信息网站地图标签大全

当前位置:诺佳网 > 软件工程 > 后端开发 > Java >

基本类型与包装类型相互转化,如int[]与Integer[

时间:2025-03-30 22:20

人气:

作者:admin

标签:

导读:int[]转Integer[] 代码解析: int[] arr1 = {1, 2, 3}; Integer[] arr2 = Arrays.stream(arr1).boxed().toArray(Integer[]::new); 1. Arrays.stream(arr1) Arrays.stre...

int[]转Integer[]

代码解析:

int[] arr1 = {1, 2, 3};
Integer[] arr2 = Arrays.stream(arr1).boxed().toArray(Integer[]::new);

1. Arrays.stream(arr1)

  • Arrays.stream(int[] array) 是 Java 8 引入的流式操作 API,它接受一个 int[] 基本类型数组,并返回一个 IntStream(基本类型 int 的流)。
  • 这里 arr1int[] 类型,所以 Arrays.stream(arr1) 返回一个 IntStream

2. .boxed()

  • .boxed()IntStream 的一个方法,用于将基本类型 int 的流 (IntStream) 转换为包装类型 Integer 的流 (Stream<Integer>)。
  • 由于 Java 的泛型不支持基本类型(如 int),所以在需要泛型操作(如 Stream<T>)时,必须使用包装类型(如 Integer)。
  • 这一步的作用是将 IntStream 转换为 Stream<Integer>

3. .toArray(Integer[]::new)

  • .toArray() 是流(Stream<T>)的终止操作,用于将流转换为数组。
  • Integer[]::new 是一个数组构造器引用,相当于 size -> new Integer[size],告诉 toArray 方法生成一个 Integer[] 数组。
  • 最终,Stream<Integer> 被转换为 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[]转int[]

//定义 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();
温馨提示:以上内容整理于网络,仅供参考,如果对您有帮助,留下您的阅读感言吧!
相关阅读
本类排行
相关标签
本类推荐

CPU | 内存 | 硬盘 | 显卡 | 显示器 | 主板 | 电源 | 键鼠 | 网站地图

Copyright © 2025-2035 诺佳网 版权所有 备案号:赣ICP备2025066733号
本站资料均来源互联网收集整理,作品版权归作者所有,如果侵犯了您的版权,请跟我们联系。

关注微信