什么是Stream

Stream是Java 8新增的一种抽象数据类型,它可以按顺序处理数据项并且支持类似于数据库查询的各种操作。Stream的操作可以是中间操作,也可以是完结操作。完结操作会返回一个某种类型的值,而中间操作会返回流对象本身,并且你可以通过多次调用同一个流操作方法来将操作结果串起来。

Stream的优势

1、性能更高:Stream API可以极大提高性能,特别是处理大量数据时。Stream API可以将复杂操作拆解成多个步骤,并且在内部采用多线程并行执行。
2、代码更简洁:Stream API可以使代码更简洁,更易读,而且不用写出冗长的循环。
3、可操作性更强:Stream API支持函数式编程,支持对数据进行各种操作,比如过滤、转换、排序等,这些操作可以非常容易地表达出来。

Stream的使用

Stream的使用非常简单,只需要创建一个Stream对象,然后调用Stream对象的方法,就可以完成数据的处理。下面是一个例子:

List<String> list = Arrays.asList("a", "b", "c", "d");
Stream<String> stream = list.stream();

stream.filter(s -> s.startsWith("c"))
.map(String::toUpperCase)
.sorted()
.forEach(System.out::println);

上面的代码将列表中以“c”开头的字符串转换为大写,并按字母顺序排序,最后输出到控制台。