一、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<Integer> idParam= Arrays.stream(longs).boxed().collect(Collectors.toList());
System.out.println(idParam);
}
二、boxed()的使用
将基本类型的stream转成了包装(boxed)类型的Stream,如将int类型的流转化为Integer类型的流。
@Override
public final Stream<Integer> boxed() {
return mapToObj(Integer::valueOf);
}
- IntStream是int类型的流。Stream<Integer>是Integer类型的流。
- IntStream存的是int类型的stream,而Stream<Integer>是一个存了Integer的stream。
boxed的作用就是将int类型的stream转成了Integer类型的Stream
List<Integer> numbers = Arrays.asList(1, 2, 3, 3, 4, 5);
IntStream intStream = numbers.stream().mapToInt(i -> i); //转成IntStream
Stream<Integer> boxed = intStream.boxed(); //转成Stream<Integer>