Stream流之List、Integer[]、int[]相互转化

一. int[ ]转化

1.1、int[ ] 转 List< Integer >

public static void main(String[] args) {
        int[] arr = { 1, 2, 3, 4, 5 };
        List<Integer> list = Arrays.stream(arr).boxed().collect(Collectors.toList());
        list.forEach(e -> System.out.print(e + " "));
    }
  • Arrays.stream(arr) 将int数组转化为IntStream
  • boxed() 将每一个整数进行装箱,把IntStream 转换成了 Stream< Integer >
  • collect(Collectors.toList()) 将对象流收集为集合,转化为 List< Integer >

1.2、int[ ] 转 Integer[ ]

Integer[] integers = Arrays.stream(arr).boxed().toArray(Integer[]::new);
  • Arrays.stream(arr) 还是转化为流
  • boxed() 装箱,将基本类型流转换为对象流
  • toArray(Integer[ ]::new) 将对象流转换为对象数组

二、Integer[ ]

2.1、Integer[ ]转 int[ ]

int[] arr= Arrays.stream(integers).mapToInt(Integer::valueOf).toArray();
  • mapToInt(Integer::valueOf) 将对象流转化为基本类型流
  • toArray() 转化为int数组

2.2、Integer[ ]转 List<Integer>

Integer[] integers = {1,2,3,4,5};
List<Integer> list = Arrays.asList(integers); 

三、List< Integer >

3.1、List< Integer > 转 Integer[ ]

Integer[] integers = list.toArray(new Integer[list.size()]);

3.2、List< Integer > 转 int[ ]

int[] arr2 = list.stream().mapToInt(Integer::valueOf).toArray();

 

posted @ 2020-06-12 10:35  Rainyn  阅读(4398)  评论(0编辑  收藏  举报