Stream 是什么
Java 8 API 添加了一个新的抽象称为流Stream,可以让你以一种声明的方式处理数据。
这种风格将要处理的元素集合看作一种流, 流在管道中传输, 并且可以在管道的节点上进行处理, 比如筛选, 排序,聚合等。类似用 SQL 语句从数据库查询数据的直观方式来提供一种对 Java 集合运算和表达的高阶抽象。
元素流在被创建之后,在管道中经过中间操作(intermediate operation)的处理,最后由最终操作(terminal operation)得到前面处理的结果。
Stream有以下特性及优点:
可消费性。Stream只能被“消费”一次,一旦遍历过就会失效,就像容器的迭代器那样,想要再次遍历必须重新生成。
可以遍历、去重、排序、统计等操作,详细可以查看:Stream API 手册内容
import java.util.Arrays;
import java.util.List;
import java.util.stream.Stream;
public class NowJavaTest {
public static void main(String[] args) {
// 直接通过集合的stream接口创建
List<String> list = Arrays.asList("NowJava", "Now", "Java", "JDK", "Java");
Stream<String> stream1 = list.stream();
// Arrays.stream() 创建流
String[] array = {"baidu.com", "sohu.com", "NowJava.com", "sohu.com"};
Stream<String> stream2 = Arrays.stream(array);
// Stream.of() 创建流
Stream<String> stream3 = Stream.of("baidu.com", "sohu.com", "NowJava.com");
// 直接遍历输出
System.out.println("直接输出:");
stream1.distinct().forEach(System.out::println);
// 去重输出
System.out.println("\r\n去重输出:");
stream2.distinct().forEach(System.out::println);
// 排序输出
System.out.println("\r\n排序输出:");
stream3.sorted().forEach(System.out::println);
// 处理后输出
/**代码未完, 请加载全部代码(NowJava.com).**/
本文系作者在时代Java发表,未经许可,不得转载。如有侵权,请联系nowjava@qq.com删除。