• 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流水操作

  • 相关阅读:
    Android 弹出自定义对话框
    2023NOIP游寄
    【uniapp/uview】Collapse 折叠面板更改右侧小箭头图标
    35-Java方法的定义格式、常见问题
    【Redis】深入探索 Redis 的数据类型 —— 字符串 string
    99%的时间里使用的14个git命令
    C++常用格式化输出转换
    算法刷题第二天:双指针--1
    Mysql 45讲学习笔记(二十四)MYSQL主从一致
    css3 table表格
  • 原文地址:https://blog.csdn.net/qq_29530893/article/details/133348941