在Java中,有三种不同的方法可以在java 8中打印Stream的元素。这三种不同方式的名称如下:
Stream的forEach()方法
使用collect()Stream方法的println()
Stream的peek()方法
我们将看到在Java 8中一对一打印流元素的所有三种方式...
forEach()方法该方法在java.util.stream包中可用。
这不是静态方法,因此将与对象一起调用此方法。
此方法的返回类型为void,因此它不返回任何内容。
此方法充当流的每个元素。
该方法的语法如下所示:
void forEach(Consumer <? super T > consumer);
这里,Consumer是一个接口,T是元素类型。
示例:非lambda表达式
import java.util.stream.*;
public class PrintStreamElementByForeachMethod {
public static void main(String[] args) {
// Here of() method of Stream interface is used to get the stream
Stream stm = Stream.of("Java", "is", "a", "programming", "language");
// we are printing the stream by using forEach() method
stm.forEach(stm1 -> System.out.println(stm1));
}
}输出结果
E:\Programs>javac PrintStreamElementByForeachMethod.java E:\Programs>java PrintStreamElementByForeachMethod Java is a programming language
示例:简短的lambda表达式
import java.util.stream.*;
public class PrintStreamElementByForeachMethod {
public static void main(String[] args) {
// Here of() method of Stream interface is used to get the stream
Stream stm = Stream.of("Java", "is", "a", "programming", "language");
// we are printing the stream by using forEach() method
stm.forEach(System.out::println);
}
}输出结果
E:\Programs>javac PrintStreamElementByForeachMethod.java E:\Programs>java PrintStreamElementByForeachMethod Java is a programming language
使用Stream的collect()方法的println()该方法在java.util.stream包中可用。
此方法不是静态的,因此可以通过Stream接口的对象进行访问。
此方法将流元素收集为Collector对象,然后使用println()方法打印元素。
println()withcollect()方法的语法,
System.out.println(Stream_object.collect(Collectors.toList()));
例:
import java.util.stream.*;
public class PrintStreamElementByForeachMethod {
public static void main(String[] args) {
//这里的Stream接口的of()方法用来获取流
Stream stm = Stream.of("Java", "is", "a", "programming", "language");
//我们正在使用forEach()方法打印流
stm.forEach(System.out::println);
}
}输出结果
E:\Programs>javac PrintStreamElementByForeachMethod.java E:\Programs>java PrintStreamElementByForeachMethod [Java, is, a, programming, language]
peek()方法该方法在java.util.stream包中可用。
此方法不是静态的,因此将与Stream对象一起调用此方法。
该方法的语法如下:
Stream peek(Consumer <? super T> consumer);
此方法返回一个Stream,它由Current流的所有元素组成,并且对每个元素执行给定的操作或动作。
在这种方法中,如果已经消耗了一个流,那么我们要再次消耗相同的流,那么在这种情况下,我们将不会得到任何错误或异常,并且它是有效的。
例:
import java.util.stream.*;
public class PrintStreamElementByPeekMethod {
public static void main(String[] args) {
// 这里的Stream接口的of()方法用来获取流
Stream stm = Stream.of("Java", "is", "a", "programming", "language");
//我们正在使用peek()方法打印流
//我们正在使用peek()方法打印流
stm.peek(stm1 -> System.out.println(stm1)).count();
}
}输出结果
E:\Programs>javac PrintStreamElementByPeekMethod.java E:\Programs>java PrintStreamElementByPeekMethod Java is a programming language