【Java 8 新特性】Java 8 IntStream, LongStream和DoubleStream的使用示例
作者:互联网
Java 8 IntStream, LongStream和DoubleStream的使用示例
在本页中,我们将提供Java8
IntStream
、
LongStream
和
DoubleStream
的示例。
IntStream
、
LongStream
和
DoubleStream
分别是原
int
流、原
long
流和原
double
流的特化。
这些接口有许多有用的方法。它们在使用类中提供初始化的静态方法。
IntStream
java.util.stream.IntStream
是原始integer
值的序列。
像max
和average
这样的聚合操作可以使用顺序和并行操作来执行。
rangeClosed(a,b):提供一个从a到b的整数流。
range(a,b):提供一个从a到b-1的整数流。
sum:计算值之和。
sorted:对值进行排序。
代码示例
IntStreamDemo.java
package com.concretepage;
import java.util.stream.IntStream;
public class IntStreamDemo {
public static void main(String[] args) {
System.out.println("--Using IntStream.rangeClosed--");
IntStream.rangeClosed(13, 15).map(n->n*n).forEach(s->System.out.print(s +" "));
System.out.println("\n--Using IntStream.range--");
IntStream.range(13,15).map(n->n*n).forEach(s->System.out.print(s +" "));
System.out.println("\n--Sum of range 1 to 10--");
System.out.print(IntStream.rangeClosed(1,10).sum());
System.out.println("\n--Sorted number--");
IntStream.of(13,4,15,2,8).sorted().forEach(s->System.out.print(s +" "));
}
}
输出
--Using IntStream.rangeClosed--
169 196 225
--Using IntStream.range--
169 196
--Sum of range 1 to 10--
55
--Sorted number--
2 4 8 13 15
LongStream
java.util.stream.LongStream
是原始long
值的序列。
聚合操作可以使用顺序和并行操作来执行。
方法和 IntStream
相同。
代码示例
LongStreamDemo.java
package com.concretepage;
import java.util.stream.LongStream;
public class LongStreamDemo {
public static void main(String[] args) {
System.out.println("--Using LongStream.rangeClosed--");
LongStream.rangeClosed(13, 15).map(n->n*n).forEach(s->System.out.print(s +" "));
System.out.println("\n--Using LongStream.range--");
LongStream.range(13,15).map(n->n*n).forEach(s->System.out.print(s +" "));
System.out.println("\n--Sum of range 1 to 10--");
System.out.print(LongStream.rangeClosed(1,10).sum());
System.out.println("\n--Sorted number--");
LongStream.of(13,4,15,2,8).sorted().forEach(s->System.out.print(s +" "));
}
}
输出
--Using LongStream.rangeClosed--
169 196 225
--Using LongStream.range--
169 196
--Sum of range 1 to 10--
55
--Sorted number--
2 4 8 13 15
DoubleStream
java.util.stream.DoubleStream
是原始double
值的序列。
聚合操作可以使用顺序和并行操作来执行。
average:计算平均值。
max:查找最大值。
代码示例
DoubleStreamDemo.java
package com.concretepage;
import java.util.function.DoublePredicate;
import java.util.stream.DoubleStream;
public class DoubleStreamDemo {
public static void main(String[] args) {
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));
}
}
输出
--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
参考文献
【1】Java 8 IntStream, LongStream and DoubleStream Example
标签:LongStream,Java,示例,--,System,DoubleStream,IntStream,out 来源: https://blog.csdn.net/qq_31635851/article/details/116043616