Java基础学习Lambda与Stream(续)

本文详细探讨了Java中的Lambda表达式和Stream API的中间操作,如map和flatMap的区别,以及终止操作,包括遍历、匹配、查找、统计和规约。此外,还重点介绍了Stream的收集操作,特别是collect方法及其与Collectors类的配合使用。
摘要由CSDN通过智能技术生成

/*
    中间操作 : 映射 -> 将stream操作的每个元素转换成另外一个种形式|提取信息
        <R> Stream<R> map(Function<? super T,? extends R> mapper) 返回一个流,该流包含将给定函数应用于此流的元素的结果。  ******
             Stream操作的每一个元素都会应用参数函数映射为一个结果,最终返回持有所有结果的新的流
        <R> Stream<R> flatMap(Function<? super T,? extends Stream<? extends R>> mapper)
            Stream操作的每一个元素都会应用参数函数映射为一个结果,这个结果的类型必须为Stream类型,会对所有的结果Stream进行连接,连接成为一个流返回

        区别 :
            1.map映射的每一个数据结果可以为任意类型
              flatMap映射的每一个数据结果只能为Stream类型
            2.map不存在结果流连接的情况,直接返回持有结果的新的流
              flatMap结果类型肯定为Stream类型,所有先连接再返回一个流,流中操作的为具体的数据
 */
    

static List<Employee> emps = Arrays.asList(
                new Employee(1001,"胡歌",35,20000),
                new Employee(1002,"彭于晏",30,16000),
                new Employee(1003,"吴彦祖",33,18000),
                new Employee(1003,"吴彦祖",33,18000),
                new Employee(1004,"谢霆锋",33,19000),
                new Employee(1005,"吴磊",22,17000)
        );
        public static void main(String[] args) {
            //所有员工的姓名输出
            emps.stream()
                    .distinct()
                    //.map(e->e.getName())
                    .map(Employee::getName)
                    .forEach(System.out::println);
    
            //把所有的字符串转为大写遍历输出
            String[] arr = {"aaa","bbbb","cc"};
            Arrays.stream(arr).map(String::toUpperCase).forEach(System.out::println);
    
            //统计字符串数组中每一个字符串的长度输出
      
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值