• JAVA中常用的10个Lambda表达式


    1、集合遍历

    1. List stringList = Arrays.asList("apppe","organge","banana");
    2. // 原来的方式
    3. for (String s : stringList) {
    4. System.out.println(s);
    5. }
    6. // lambda 表达式
    7. stringList.forEach(s->{
    8. System.out.println(s);
    9. });

    2、排序

    1. List dogs = Arrays.asList(new Dog[]{
    2. new Dog("n1", 12),
    3. new Dog("n2", 14),
    4. new Dog("n3", 11)
    5. });
    6. // 方法1
    7. Collections.sort(dogs, new Comparator() {
    8. @Override
    9. public int compare(Dog o1, Dog o2) {
    10. return o1.getAge()>o2.getAge()?-1:1;
    11. }
    12. });
    13. // 方法2
    14. Collections.sort(dogs,(o1,o2)->(o1.getAge()>o2.getAge()?-1:1));
    15. dogs.forEach(s->{
    16. System.out.println(s.getAge());
    17. });

    注意:-1:代表第一个对象,1:代表第二个对象 

    3、过滤

    1. List stringList = Arrays.asList("apple","organge","banana");
    2. // 获取集合中所有以“a”开头的字符串
    3. // 原来的方式
    4. List newList = new ArrayList();
    5. for (String s : stringList) {
    6. if(s.startsWith("a")){
    7. newList.add(s);
    8. }
    9. }
    10. // lambda表达式
    11. List newList2 = stringList.stream().filter(s -> {
    12. if(s.startsWith("a")){
    13. return true;
    14. }
    15. return false;
    16. }).collect(Collectors.toList());

    4、映射

    1. List stringList = Arrays.asList("apple","organge","banana");
    2. // 获取集合中所有字符串的长度
    3. // 原来的方式
    4. List newList = new ArrayList();
    5. for (String s : stringList) {
    6. newList.add(s.length());
    7. }
    8. // lambda表达式
    9. List newList2 = stringList.stream().map(s -> {
    10. return s.length();
    11. }).collect(Collectors.toList());
    12. // lambda 表达式
    13. newList2.forEach(s->{
    14. System.out.println(s);
    15. });

    注意:lambda表达式中的map函数把每个元素进行转换操作

    5、规约

    1. List numList = Arrays.asList(1,2,3,4,5);
    2. // 计算综合
    3. // 原来的方式
    4. Integer sum = 0;
    5. for (Integer s : numList) {
    6. sum += s;
    7. }
    8. // lambda表达式
    9. sum = numList.stream().reduce(0,(a,b)->{
    10. return a+b;
    11. });

    6、分组

    1. List dogs = Arrays.asList(new Dog[]{
    2. new Dog("n1", 12),
    3. new Dog("n2", 14),
    4. new Dog("n3", 12)
    5. });
    6. // 根据年龄进行分组
    7. Map> collect = dogs.stream()
    8. .collect(Collectors.groupingBy(s -> s.getAge()));
    9. System.out.println(collect);

    7、Stream流水操作

  • 相关阅读:
    字符串函数的详解
    剑指offer 20. 调整数组顺序使奇数位于偶数前面
    GPU架构与计算入门指南
    2022编译原理期末考试 回忆版
    C++类型转换
    VE成本分析的一次考察
    4.NVIDIA Deepstream开发指南中文版--C和C++示例应用程序源详细信息
    一文帮你搞定H5、小程序、Taro长列表曝光埋点
    图解Kubernetes的Pod核心资源-来白嫖啊
    周报6.24~6.30
  • 原文地址:https://blog.csdn.net/qq_29530893/article/details/133348941