Arrays.stream().boxed()的使用

一、Arrays.stream()的使用

使用:

1、获取需要转换的数组

2、使用Arrays.stream()将数组转换为流,且数组作为参数传递

3、返回流

例:将字符串转化为Stream,再转为List

public void test(){

    String ids="1,2,3,4,5,6,7";
    
    /**将字符串转成数组,ids为逗号分隔**/
    int[] ints = StrUtil.splitToInt(ids,",");
    
    /**将longs转化为stream,通过boxed()转化为Long类型的流,再使用collect(Collectors.toList())转化为List类型**/
    List idParam= Arrays.stream(longs).boxed().collect(Collectors.toList());
    
    System.out.println(idParam);
}

二、boxed()的使用

将基本类型的stream转成了包装(boxed)类型的Stream,如将int类型的流转化为Integer类型的流。

@Override
public final Stream boxed() {
    return mapToObj(Integer::valueOf);
}

  • IntStream是int类型的流。Stream是Integer类型的流。
  • IntStream存的是int类型的stream,而Stream是一个存了Integer的stream。
    boxed的作用就是将int类型的stream转成了Integer类型的Stream
List numbers = Arrays.asList(1, 2, 3, 3, 4, 5);
IntStream intStream = numbers.stream().mapToInt(i -> i);  //转成IntStream
Stream boxed = intStream.boxed();                //转成Stream

你可能感兴趣的:(java,开发语言)