栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

java8—Stream API

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

java8—Stream API

1.流

Stream(流)这种风格将要处理的元素集合看作一种流, 流在管道中传输, 并且可以在管道的节点上进行处理

每个Stream都有两种模式: 顺序执行和并行执行。
当使用顺序方式去遍历时,每个item读完后再读下一个item。

而使用并行去遍历时,数组会被分成多个段,其中每一个都在不同的线程中处理,然后将结果一起输出。

1.1 生成

通常在集合或数组的基础上生成,语法.stream()和.parallelStream()
数组转化为流:Arrays.stream(数组名)
集合转化为流:list.stream()

int b= (int) Arrays.stream(strings).filter(s->!s.isEmpty()).count();

1.2 流方法

int[] doubleNum = Arrays.stream(nums).map(i -> i * i).toArray();
1.3 聚合

stream.collect() 的本质由三个参数构成,

  1. Supplier 生产者, 返回最终结果
  2. BiConsumer accumulator 累加器
    第一个参数是要返回的集合, 第二个参数是遍历过程中的每个元素,
    将流中每个被遍历的元素添加到集合中
  3. BiConsumer combiner 合并器, 在有并行流的时候才会有用, 一个流时代码不会走到这里
Collectors

Collectors是一个工具类,是JDK预实现Collector的工具类

Collectors.groupingBy按返回值进行分类集合

  1. groupingBy 算子计算完以后,返回的是一个 Map>
class Solution {
    
    public List> groupAnagrams(String[] strs) {


        return new ArrayList<>(Arrays.stream(strs).collect(Collectors.groupingBy(str -> {
            char[] array = str.toCharArray();
            Arrays.sort(array);
            return new String(array);
        })).values());

    }
}
  1. 按集合返回Collectors.toCollection
List ll = list.stream().collect(Collectors.toCollection(LinkedList::new));
  1. 按数组返回Collectors.toList()
  2. 更多内容
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/972920.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号