美文网首页
Java8流式操作笔记

Java8流式操作笔记

作者: 塔塔斯坦 | 来源:发表于2019-06-25 20:26 被阅读0次

    java8的新特性,非新数据结构,

    源可以是集合或数组,可以对源过滤、排序、映射等(每一步返回的都是流对象),最后对流中数据整合


    获取流

    listobj.stream()

    Stream.of(....)

    listobj.stream.parallel或listobj.parallelStream() 获得并行流,提高速度

    java.util.stream.LongStream.rangeClosed(0L,10L)

    Arrays.stream


    中间操作

    s.filter过滤

    s.distinct去重,根据hashCode和equals规则对比

    s.sorted()和sorted(Comparator)

    s.limit 截断取前n个

    s.skip 跳过n个

    s.map 元素映射, 这些基本类似于python的列表解析

    s.flatMap(function)  function接收原始流中元素,返回一个流, 最终flatMap的结果是把每个元素整出来的流汇总成一个流,比如原来是[array(h,e,l,l,o),array(w,o,r,l,d)],处理后变成[h,e,l,l,o,w,o,r,l,d],相当于把原始流中的元素平铺开了


    最终整合操作

    s.collect(Collectors.toList())  s.collect(Collectors.toMap(......))

    s.reduce 迭代计算,最后得出一个reduce后的元素

    s.min/max 

    s.anyMatch/allMatch/nonMatch  返回布尔型,是否存在满足/是否全部满足/是否都不满足

    s.count 个数

    s.forEach 对每个元素操作

    s.findFirst 获取流中第一个元素

    s.findAny 获取流中任意一个元素(其实也是第一个, 在并行流情况下的结果运行多次可能不一样,因为看哪个cpu片先抢先运行就返回他那小段的第一个)


    Collectors工具类

    toList/toSet/toMap

    maxBy/minBy  参数是一个Comparator, 通过给定的比较规则选出最大/最小的元素

    joining 讲流中元素拼接成字符串

    summingInt/summingFloat/..  计算int类型的和,

    averagingInt/..  计算平均

    summarizingInt/.. 获取描述统计信息,里边有元素个数,和,平均数, 最大最小等

    相关文章

      网友评论

          本文标题:Java8流式操作笔记

          本文链接:https://www.haomeiwen.com/subject/detfcctx.html