Java 中的流
javaobject oriented programmingprogramming
流表示来自源的对象序列,支持聚合操作。以下是流的特征 −
元素序列 − 流以顺序方式提供一组特定类型的元素。流按需获取/计算元素。它从不存储元素。
源 − 流以集合、数组或 I/O 资源作为输入源。
聚合操作 − 流支持聚合操作,如过滤、映射、限制、减少、查找、匹配等。
流水线 − 大多数流操作都会返回流本身,以便可以对其结果进行流水线处理。这些操作称为中间操作,其功能是获取输入、处理输入并将输出返回给目标。collect() 方法是一种终端操作,通常出现在流水线操作的末尾,以标记流的末尾。
自动迭代 − 流操作在提供的源元素上内部进行迭代,而集合则需要显式迭代。
示例
现在让我们看一个例子 −
import java.util.Collection; import java.util.TreeSet; import java.util.stream.Collectors; import java.util.stream.Stream; public class Demo { public static void main(String[] args) { Stream<String> stream = Stream.of("25", "10", "15", "20", "25"); Collection<String> collection = stream.collect(Collectors.toCollection(TreeSet::new)); System.out.println("Collection = "+collection); } }
输出
Collection = [100, 130, 150, 20, 200, 50, 80]
示例
现在,让我们使用 Java 流 counting() 方法计算流中元素的数量 −
import java.util.*; import java.util.stream.Collectors; import java.util.stream.Stream; public class Demo { public static void main(String[] args) { Stream<String> stream = Stream.of("Kevin", "Jofra","Tom", "Chris", "Liam"); // count long count = stream.collect(Collectors.counting()); System.out.println("Number of elements in the stream = "+count); } }
输出
Number of elements in the stream = 5