流表示来自源的一系列对象,支持聚合操作。以下是流的特征-
元素顺序-流以顺序方式提供一组特定类型的元素。流按需获取/计算元素。它从不存储元素。
源-流将集合,数组或I / O资源作为输入源。
聚合操作-Stream支持聚合操作,例如过滤,映射,限制,缩小,查找,匹配等。
流水线化-大多数流操作返回流本身,以便其结果可以流水线化。这些操作称为中间操作,其功能是获取输入,处理它们并将输出返回给目标。collect()
方法是一种终端操作,通常在流水线操作的结尾出现以标记流的结尾。
自动迭代-与需要显式迭代的Collections相反,流操作在内部对提供的源元素进行迭代。
现在让我们看一个例子-
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 streamcounting()
方法计算流中元素的数量-
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"); //数 long数 = stream.collect(Collectors.counting()); System.out.println("Number of elements in the stream = "+count); } }
输出结果
Number of elements in the stream = 5