,lambda表达式简明扼要的以流水线的方式去处理集合内的数据,可以很轻松的完成过滤、分组、收集、归约这类操作。,总得来说,lambda的操作分为两类:中间型和最终型。,,中间型操作,filter会按照指定的条件匹配出符合要求的元素,并返回一个新的stream流,可以配合其他中间型或最终型API使用。,示例:,map可以将一个对象转换为另一个对象,并返回一个新的stream流,比如将一个Integer对象转换为String对象。,示例:,peek会对流中的元素逐个遍历处理,它与map的区别在于:map一般用于对象的转换,peek用于对象的消费,即不改变元素本身的类型。,flatMap可以将已有的对象转换为另一个对象,它是一个一对多的逻辑。它与map的区别在于:map是一对一的,即将一个对象转换为另一个对象,而flatMap是一对多的,即将一个对象拆分对多个对象。,就相当于sql中的limit,可以指定保留前N的元素。,作用与limit相反,会抛弃前N的元素。,可以将多个流的数据合并为一个流。,用于对流中的元素去重。,用于对流中的数据排序。,,最终型操作,统计元素的个数,不会自动去重。,匹配元素最大值并返回。,匹配元素最小值并返回。,找到第一个匹配的元素后立即返回。,找到任何匹配的元素就返回。如果用在一个串行流中,跟findFirst效果一样。如果用在并行流中,就会比较高效。,用于判断是否有符合匹配条件的元素。,用于判断是否所有元素都符合匹配条件。,用于判断是否所有元素都不符合匹配条件。,将流转换为指定的类型,比如List转换为Set。,将元素合并起来,得到一个新值。,将流转换为数组。,将流转换为一个迭代器。,对流中的元素逐个遍历。
© 版权声明
文章版权归作者所有,未经允许请勿转载。