一、peek操作的简介 在Java 8 Stream API中,peek是一个中间操作,它允许你在流处理过程中插入一个自定义的操作。peek接收一个Consumer函数式接口作为参数,该函数会在流中的每个元素上执行。然而,与map或filter等其他中间操作不同,peek不会改变流的内容,也不会产生新的流。它主要用于调试、观察或记录流中的元素。
Stream.of("one","two","three","four").filter(e->e.length()>3).peek(e->System.out.println("Filtered value: "+e)).map(String::toUpperCase).peek(e->System.out.println("Mapped value: "+e)).collect(Collectors.toList()); 输出的结果: 代码语言:javascript 代码运行次数:0 运行 AI代码解...
步骤1:定义Stream 首先,我们需要定义一个Stream对象来操作。Stream可以从集合、数组、I/O通道等数据源创建。在这个例子中,我们使用集合来创建一个Stream。 List<Integer>numbers=Arrays.asList(1,2,3,4,5);Stream<Integer>stream=numbers.stream(); 1. 2. 在这里,我们创建了一个包含整数的List集合,并使用stream...
strings.stream().map(str->str.toUpperCase()).forEach(System.out::println); 结果: AA BB CC DD 1. 2. 3. 4. 5. 6. 7. 8. 采用语法糖的方式: // 类名::方法名 这是java的语法糖 strings.stream().map(StramAPI01::filterCharacter) .forEach(x->x.forEach(System.out::println)); priv...
peek()是Java 8 Stream API中的一个中间操作方法,它的主要功能是对流中的每个元素执行一个操作(可以是获取、修改或打印等),而不影响流的整体处理流程。这意味着即使使用了peek(),流也可以继续进行后续的映射、过滤或其他操作。 <T> Stream<T> peek(Consumer<? super T> action); ...
Java 8 Stream Api 中的 peek 操作 peek操作接收的是一个Consumer<T>函数。顾名思义 peek 操作会按照Consumer<T>函数提供的逻辑去消费流中的每一个元素,同时有可能改变元素内部的一些属性。 这里我们要提一下这个Consumer<T>以理解 什么是消费。 2.1 什么是消费 (Consumer)...
Stream<String> stream = Stream.of("hello","felord.cn");List<String> strs= stream.peek(System.out::println).collect(Collectors.toLIst()); 比如下图,我们给圆球加了一个框: 3. peek VS map peek操作 一般用于不想改变流中元素本身的类型或者只想操作元素的内部状态时;而map则用于改变流中元素本身...
我在Java8 Stream中讲述了 Java 8 Stream API 的一些内容。今天再看一下peek、map、foreach区别。 2. peek peek操作接收的是一个Consumer函数。顾名思义 peek 操作会按照Consumer函数提供的逻辑去消费流中的每一个元素,同时有可能改变元素内部的一些属性。
java 8 stream作为流式操作有两种操作类型,中间操作和终止操作。这两种有什么区别呢? 我们看一个peek的例子: Stream<String> stream = Stream.of("one", "two", "three","four"); stream.peek(System.out::println); 上面的例子中,我们的本意是打印出Stream的值,但实际上没有任何输出。
一个java 8的stream是由三部分组成的。数据源,零个或一个或多个中间操作,一个或零个终止操作。 中间操作是对数据的加工,注意,中间操作是lazy操作,并不会立马启动,需要等待终止操作才会执行。 终止操作是stream的启动操作,只有加上终止操作,stream才会真正的开始执行。