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

  • 相关阅读:
    光谱图像超分辨率综述
    别看了,这就是你的题呀(二)
    supOS APP开发者课程练习册
    Maven实战: 从工程创建自定义archetype
    Bricks WordPress 网站生成器中存在 RCE 漏洞,黑客正在积极利用
    C专家编程 第10章 再论指针 10.6 使用指针从函数返回一个数组
    [2023.09.26]: JsValue的转换体验与as关键字的浅析
    Grōk :马斯克 xAI 打造的 ChatGPT 竞争产品探索
    【Linux】进程数据结构
    Spring Authorization Server授权服务器入门
  • 原文地址:https://blog.csdn.net/qq_29530893/article/details/133348941