• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

Java StreamList、Integer[]、int[] 的相互转换

武飞扬头像
studyday1
帮助1

不得不说Java8的新特性Stream流对数据的处理、转换十分友好,代码简洁高效,业务场景中经常会遇到需要将集合、数组进行转换,下面列举几个常见转换形式

 1.int[]类型

int[]  ==> Integer[]

  1.  
    //int[] => IntStream => Stream<Integer> => Integer[]
  2.  
    Integer[] vinteger = Arrays.stream(vint).boxed().toArray(Integer[]::new);
  • Arrays.stream(vint) 将基本数据类型数组转换成基本数据类型流  int[] => IntStream
  • boxed() 装箱函数,将基本数据类型流转换成对象流                 IntStream => Stream<Integer>
  • toArray(Integer[]::new)方 将对象流转换为对象数组                   Stream<Integer> => Interger[]

int[]  ==> List<Integer>

List<Integer> list = Arrays.stream(vint).boxed().collect(Collectors.toList());
  •  collect(Collectors.toList()) 将对象流收集为集合,这里 collect 方法里传入的是一个收集器 (Collector),它通过 Collectors.toList() 产生。

 2.Integer[]类型

Integer[] ==> int[]

  1.  
    //Integer[] => Stream<Integer> => IntStream=> int[]
  2.  
    int[] vint = Arrays.stream(vinteger).mapToInt(Integer::valueOf).toArray();
  • Arrays.stream(vinteger) 将对象数组转换成对象流  Integer[] => Stream<Integer>
  • mapToInt(Integer::valueOf) 将对象流转换成基本类型流。Stream<Integer> => IntStream
  • toArray() 将基本类型流转换为基本类型数组。IntStream => int[]

注意点: map函数表示映射每个元素做同样操作,而mapToInt函数是表示将每个元素转换成int。

Integer[] ==> List<Integer>

List<Integer> list = Arrays.asList(vinteger);
  • asList方法将数组转换成集合
  • asList 返回的是 Arrays 里的静态私有类 ArrayList,而不是 java.util 里的 ArrayList,它无法自动扩容

 无法扩容,就有存在限制了,如果业务场景需要将集合增加元素,即需扩容的情况下,可以重新实例化一个ArrayList,使其可以自动扩容

List<Integer> list = new ArrayList<>(Arrays.asList(vinteger));

 3.List<Integer>类型

List<Integer> ==> int[]

  1.  
    //List<Integer> => Stream<Integer> => IntStream => int[]
  2.  
    int[] vint = list.stream().mapToInt(Integer::valueOf).toArray();
  • stream方法将集合转换为对象流 List<Integer> => Stream<Integer>

 List<Integer> ==> Integer[]

Integer[] vinteger = list.toArray(new Integer[list.size()]);
  • 需要注意,toArray方法中的参数传递一个数组,即需要归定长度,则可以通过list.size()定义。 

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /boutique/detail/tanhgfajjg
系列文章
更多 icon
同类精品
更多 icon
继续加载