美文网首页java
lambda表达式的常见应用场景

lambda表达式的常见应用场景

作者: 修行者12138 | 来源:发表于2020-06-25 22:39 被阅读0次

筛选出符合条件的元素

    private void test1() {
        List<Integer> list = new ArrayList<>(Arrays.asList(1, 2, 3));
        List<Integer> collect = list.stream().filter(num -> num > 1).collect(Collectors.toList());
        System.out.println(collect);
    }

输出
[2, 3]

筛选出实体类的某个属性

    private void test2() {
        List<StudentDO> list = new ArrayList<>(Arrays.asList(new StudentDO("张三"), new StudentDO("李四")));
        List<String> collect = list.stream().map(StudentDO::getName).collect(Collectors.toList());
        System.out.println(collect);
    }

输出
[张三, 李四]

筛选出list1中有,list2中没有的元素

    private void test3() {
        List<Integer> list1 = new ArrayList<>(Arrays.asList(1, 2, 3, 4, 5));
        List<Integer> list2 = new ArrayList<>(Arrays.asList(4, 5, 6));
        List<Integer> collect = list1.stream().filter(num1 -> list2.stream().noneMatch(num2 -> Objects.equals(num1, num2)))
                .collect(Collectors.toList());
        System.out.println(collect);
    }

输出
[1, 2, 3]

筛选出list1、list2都有的元素

    private void test4() {
        List<Integer> list1 = new ArrayList<>(Arrays.asList(1, 2, 3, 4, 5));
        List<Integer> list2 = new ArrayList<>(Arrays.asList(4, 5, 6));
        List<Integer> collect = list1.stream().filter(num1 -> list2.stream().anyMatch(num2 -> Objects.equals(num1, num2)))
                .collect(Collectors.toList());
        System.out.println(collect);
    }

输出
[4, 5]

把实体类的两个属性筛选出来组成map

    private void test5() {
        List<StudentDO> list = new ArrayList<>(Arrays.asList(new StudentDO(1, "张三"), new StudentDO(2, "李四")));
        Map<Integer, String> map = list.stream().collect(Collectors.toMap(StudentDO::getId, StudentDO::getName));
        System.out.println(map);
    }

输出
{1=张三, 2=李四}

对实体类的某一字段求和

    private void test6() {
        List<StudentDO> list = new ArrayList<>(Arrays.asList(new StudentDO(1, "张三"), new StudentDO(2, "李四")));
        int sum = list.stream().mapToInt(StudentDO::getId).sum();
        System.out.println(sum);
    }

输出
3

Arrays.stream可以对基本类型数组做流式操作,如对基本类型数组求和

    public void test8() {
        int[] arr = new int[]{1, 2, 3, 4};
        int sum = Arrays.stream(arr).sum();
        System.out.println(sum);
    }

输出
10

对基本类型数组装箱

    public void test7() {
        int[] arr = new int[]{1, 2, 3, 4};
        List list = Arrays.stream(arr).boxed().collect(Collectors.toList());
        System.out.println(list);
    }

输出
[1, 2, 3, 4]

对int数组求和

    public void test8() {
        int[] arr = new int[]{1, 2, 3, 4};
        System.out.println(Arrays.stream(arr).sum());
    }

未完待续...

相关文章

  • Python | 函数编程进阶版知识点

    一、lambda表达式 ▲ 掌握lambda表达式的作用和应用场景/掌握其各种应用技巧 匿名函数概述 Python...

  • Lambda 表达式的常见应用场景

    文章推荐 精选java等全套学习资源 精选java电子图书资源 精选大数据学习资源 java项目练习精选 Lamb...

  • 深入理解Java8 Lambda表达式

    一、Lambda表达式是什么? Lambda表达式有两个特点:一是匿名函数;二是可传递。 匿名函数的应用场景是: ...

  • 深入理解Java8 Lambda表达式

    一、Lambda表达式是什么? Lambda表达式有两个特点:一是匿名函数;二是可传递。 匿名函数的应用场景是: ...

  • 函数的定义与使用

    函数:def 函数名() 匿名函数:lambda 参数:表达式 匿名函数的应用场景:· 1...

  • 2021-07-04

    今天学习了Lambda表达式中的一些api,并跟着视频一起敲了一遍。大概能知道Lambda表达式的一些应用场景是什...

  • JAVA8新特性-Lambda表达式在集合中的应用

    一、前言 在上一篇文章中已经完成了Lambda表达式语法和使用。lambda表达式高级应用 二、lambda表达式...

  • Lambda 好文收集

    为什么会出现Lambda表达式,你知道吗?Lambda用在哪里?几种场景?学习Lambda表达式看这篇就够了,不会...

  • Java 8:一文掌握 Lambda 表达式

    本文将介绍 Java 8 新增的 Lambda 表达式,包括 Lambda 表达式的常见用法以及方法引用的用法,并...

  • Java 8:一文掌握 Lambda 表达式

    本文将介绍 Java 8 新增的 Lambda 表达式,包括 Lambda 表达式的常见用法以及方法引用的用法,并...

网友评论

    本文标题:lambda表达式的常见应用场景

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