java8强大的Stream API之----Stream中间操作

多个中间操作可以连接起来形成一个流水线,除非流水线上触发终止
操作,否则中间操作不会执行任何的处理!而在终止操作时一次性全
部处理
,称为“惰性求值”。

1 、筛选与切片

方 法描 述
filter(Predicate p)接收 Lambda , 从流中排除某些元素
distinct()筛选,通过流所生成元素的 hashCode() 和 equals() 去除重复元素
limit(long maxSize)截断流,使其元素不超过给定数量
skip(long n)跳过元素,返回一个扔掉了前 n 个元素的流。若流中元素不足 n 个,则返回一个空流。与 limit(n) 互补

2 、映 射

方 法描 述
map(Function f)接收一个函数作为参数,该函数会被应用到每个元素上,并将其映射成一个新的元素。
mapToDouble(ToDoubleFunction f)接收一个函数作为参数,该函数会被应用到每个元素上,产生一个新的 DoubleStream。
mapToInt(ToIntFunction f)接收一个函数作为参数,该函数会被应用到每个元素上,产生一个新的 IntStream。
mapToLong(ToLongFunction f)接收一个函数作为参数,该函数会被应用到每个元素上,产生一个新的 LongStream。
flatMap(Function f)接收一个函数作为参数,将流中的每个值都换成另一个流,然后把所有流连接成一个流

例:

 List<String> list = Arrays.asList("aaa", "bbbb", "sss", "ccc");
        list.stream().map((str) -> str.toLowerCase()).forEach(System.out::println);
        System.out.println("---------------------");

        employees.stream().map(Employee::getName).forEach(System.out::println);
        System.out.println("----------map-----------");

        Stream<Stream<Character>> stream = list.stream().map(TestStream2::filterCharacter);
        stream.forEach((sm) -> sm.forEach(System.out::println));
        System.out.println("----------flatMap-----------");
//        会合并每一个流  转为一个流   参考:list.allAll();
        list.stream().flatMap(TestStream2::filterCharacter).forEach(System.out::println);

3 、排序

方 法描 述
sorted()产生一个新流,其中按自然顺序排序
sorted(Comparator com)产生一个新流,其中按比较器顺序排序
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值