Lambda表达式九:Stream流三:Stream常用方法;

看本篇博客前,建议先浏览下补充:Stream类中的collect方法和Collector/Collectors类;和 补充:Stream接口的sorted()方法,Comparator函数式接口效果展示;Comparator函数式接口;函数式接口严格规范;这两篇博客;

(1)Stream流式处理提供了很多方法,每一个方法有不同功能的功能,通过调用不同的方法,或者说通过不同的方法组合就可以得到一些复杂的运算操作。

(2)Stream流式处理的很多方法的参数,是函数式接口的实现,自然Lambda表达式就可以起很大作用了;

(3)Stream是个很给力的工具,在实际中尽量有意识的多多使用;代码简洁,效率高!

目录

案例1:提取集合中所有偶数并求和:mapToInt()方法,filter()方法,sum()方法;

(1)mapToInt()方法:将流中的数据转换成整数;只有将流中的数据转成int以后,才能对流中的数据进行计算处理;

(2)filter()方法:对流中的数据进行过滤,将符合条件的保留下来

(3)sum()方法:只有在整数类型的流中,才可以调用sum()方法,起作用是将stream流中的数据进行求和。

 案例2:所有名字首字母大写:map()方法,forEach()方法;

(1)map()方法:作用是按照指定的规则对每一个流中的数据进行相应的转换;

(2)forEach()方法:对stream流中的所有数据做一个操作。。。本案例的操作是输出这个数据;

 案例2(附加):所有名字首字母大写:最后有一个规约操作,得到一个最终结果。得到一个新的list集合;collect()方法;

(1)collect()方法:collect是收集的意思,可以将流中的每一个数据都包装成list或者set这样的集合并返回;

 案例3:将所有奇数从大到小进行排序,且不允许出现重复;

(1)distinct()方法:去除流中重复的数据

(2)sorted(Comparator comparator)方法:流中数据排序

如何查看Stream更多的内容?:

(1)从网上找官方文档

(2)下载个jdk,不联网也能看,嘿嘿~~~


案例1:提取集合中所有偶数并求和:mapToInt()方法,filter()方法,sum()方法;

package com.imooc.stream;

import org.junit.Test;

import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
import java.util.stream.Stream;

public class StreamMethod {

    /**
     * 提取集合中所有偶数并求和
     */
    @Test
    public void case1() {
        List<String> list = Arrays.asList("1", "2", "3", "4", "5","8");
        int sum = list.stream()      // 获取stream流对象
                .mapToInt(s -> Integer.parseInt(s))  // mapToInt():这儿的作用是将流中的每一个数据转为整数
                .filter(n -> n % 2 == 0)   // filter()对流中的数据进行过滤,将符合条件的保留下来
                .sum();    // 只有在整数类型的流中,才可以调用sum()方法,起作用是将stream流中的数据进行求和。
        System.out.println(sum);
    }
}

运行结果:

说明:

(1)mapToInt()方法:将流中的数据转换成整数;只有将流中的数据转成int以后,才能对流中的数据进行计算处理;

mapToInt()方法的参数要求是一个ToIntFunction函数式接口的实现,当然可以是对应的Lambda表达式;

其实并不难,遇到一个函数式接口,只需要三点:【明白这个接口的作用】【方法的输入值】【方法的返回值】;然后编写相应的Lambda表达式去实现接口进行啦!

(2)filter()方法:对流中的数据进行过滤,将符合条件的保留下来

(3)sum()方法:只有在整数类型的流中,才可以调用sum()方法,起作用是将stream流中的数据进行求和。

经过实际查找,在Stream接口中没有找到sum()方法;上面调用的sum()方法是定义在IntStream接口中的;

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值