Java8 IntStream,LongStream,DoubleStream
IntStream
、LongStream
和 DoubleStream
分别表示原始 int
流、 原始 long
流 和 原始 double
流。
这三个原始流类提供了大量的方法用于操作流中的数据,同时提供了相应的静态方法来初始化它们自己。
这三个原始流类都在 java.util.stream
命名空间下。
public static void main(String[] args) throws InterruptedException { IntStream.range(1,10).forEach(s-> System.out.print(s+ " ")); System.out.println(); IntStream.rangeClosed(1,10).forEach(s-> System.out.print(s +" ")); System.out.println(); double average = IntStream.range(1, 10).average().orElse(0.0); System.out.println(average); long l = LongStream.rangeClosed(13, 15).max().orElse(16); System.out.println(l); System.out.println("--Using DoubleStream.of--"); DoubleStream.of(5.33,2.34,5.32,2.31,3.51).map(d->d*1.5).forEach(s->System.out.print(s +" ")); System.out.println("\n--Using DoubleStream.average--"); double val = DoubleStream.of(12.1,11.2,13.3).average().getAsDouble(); System.out.println(val); System.out.println("--Using DoubleStream.max--"); val = DoubleStream.of(12.1,11.2,13.3).max().getAsDouble(); System.out.println(val); System.out.println("--Using DoubleStream.filter--"); DoublePredicate range = d -> d > 12.11 && d < 12.99; DoubleStream.of(12.1,11.2,12.3).filter(range).forEach(d->System.out.print(d)); }
1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 10 5.0 15 --Using DoubleStream.of-- 7.995 3.51 7.98 3.465 5.265 --Using DoubleStream.average-- 12.200000000000001 --Using DoubleStream.max-- 13.3 --Using DoubleStream.filter-- 12.3