编程语言
首页 > 编程语言> > 【Java 8 新特性】Java 8 IntStream, LongStream和DoubleStream的使用示例

【Java 8 新特性】Java 8 IntStream, LongStream和DoubleStream的使用示例

作者:互联网

Java 8 IntStream, LongStream和DoubleStream的使用示例


在本页中,我们将提供Java8 IntStreamLongStreamDoubleStream的示例。
IntStreamLongStreamDoubleStream分别是原 int流、原 long流和原 double流的特化。

这些接口有许多有用的方法。它们在使用类中提供初始化的静态方法。

IntStream

java.util.stream.IntStream是原始integer值的序列。

maxaverage这样的聚合操作可以使用顺序和并行操作来执行。

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