在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