Java8 Stream 数值特化流

2020-09-21  本文已影响0人  垃圾简书_吃枣药丸
image.png

一、 数值流

Stream<Integer> integerStream = Stream.of(1, 2, 3);
Integer sum = integerStream.reduce(0, Integer::sum);

二、 数值特化流(基本类型流)

IntStream intStream = integerStream.mapToInt(x -> x);
// 求和
int intSum = intStream.sum();
// 计算最大值
OptionalInt intMax = integerStream.mapToInt(x -> x).max();
// 计算最小值
OptionalInt intMin = integerStream.mapToInt(x -> x).min();
IntStream intStream = integerStream.mapToInt(x -> x);
Stream<Integer> boxedIntegerStream = intStream.boxed();
Stream<Long> boxedLongStream = LongStream.range(1, 10).boxed();

三、 关于OptionalInt

// 注意range(1,1)生成的是一个空的流
OptionalInt optionalInt = IntStream.range(1, 1).max();
// 空的流无法获取到最大值
optionalInt.ifPresent(x -> System.out.println("最大值为:" + x));
// 当无结果时,返回一个默认值
System.out.println("默认最大值:" + optionalInt.orElse(1));
默认最大值:1

四、 数值范围

// 生成1~100,并求和
System.out.println(IntStream.rangeClosed(1, 100).sum());
上一篇 下一篇

猜你喜欢

热点阅读