java8新特性-Stream

java8有两大新特性,一个是lambda,一个是Steam,记录一下Stream表达式的学习。

1、Sream简单介绍

Srream用来处理集合或者数组的流,可以进行查找、删选、映射等操作,可以替换for循环。

2、注意点

①Stream 自己不会存储元素。
②Stream 不会改变源对象。相反,他们会返回一个持有结果的新Stream。
③Stream 操作是延迟执行的。这意味着他们会等到需要结果的时候才执行,也被称为惰性求值。

3、Sream使用

Stream使用分为3步骤。

①、创建Sream流(list代表集合)

list.stream() : 返回一个顺序流

list.parallelStream() : 返回一个并行流、

②、中间过程(希望对集合进行的数据处理)

filter() -->可以使用lambda表达式,可以从集合中去除符合条件的的数据(用来数据过滤)

distinct()-->去重;使用集合元素的hash()和equal()方法比较元素是否相等。

limit(long maxSize) -->满足条件的流中元素的最大值。

skip(long n) -->跳过流中的n个元素。

map()-->使用lambda表达式,对集合中的数据进行操作,返回一个新的元素

sorted()-->对流中数据排序

sorted(Comparator comp)-->对流中数据按指定排序规则排序。

③、终止操作

collect(Collector c) ->将流中数据作为集合返回

count() -->返回流中的数量

allMatch(Predicate p) -->检查是否匹配所有元素
anyMatch(Predicate p) -->检查是否至少匹配一个元素
noneMatch(Predicate p) -->检查是否没有匹配所有元素
findFirst() -->返回第一个元素

 

你可能感兴趣的:(java)