博客
关于我
Lambda表达式使用整理总结
阅读量:572 次
发布时间:2019-03-11

本文共 1612 字,大约阅读时间需要 5 分钟。

Lambda 表达式的基础语法及其实践应用

Lambda 表达式的简称 lambda expression 是 Java 8 中引入的一种新的编程特性,由一个特殊的运算符 "><" 或 "→" 表示。这种表达式将函数的定义变得更加简洁和灵活,为开发者提供了更高效的功能实现方式。

Lambda 表达式的基础语法

Lambda 表达式的核心结构分为两个部分:

  • 参数列表:定义函数的输入参数,参数之间用逗号分隔。
  • Lambda 体:规定函数的执行逻辑,可以是单一表达式或块状代码。
  • Lambda 表达式的两种表达形式:

    • 当 Lambda 体是单一表达式时:
      (parameters) → expression
    • 当 Lambda 体包含多个语句时:
      (parameters) → {     statement;     ...}

    Lambda 表达式的典型应用场景

  • 集合处理:优化顺序遍历

    使用 Lambda 表达式简化集合的 forEach 遍历操作:

    String[] names = {"喵", "汪", "咩"};List
    nameList = Arrays.asList(names);nameList.forEach(name → { System.out.print(name + "; ");});
  • Stream 强化版:数据过滤与映射

    List
    users = users.stream() .filter(user → user.getName().equals("小喵咪")) .collect(Collectors.toList());
    List
    nums = Arrays.asList(100, 200, 300, 400, 500);nums.stream() .map(num → num + 12) .forEach(System.out::println);
  • 集合排序:自然排序替代

    Arrays.sort(names, String::compareTo);
  • 数据聚合:结果集的交替处理

    String str = userList.stream()    .filter(user → "喵".equals(user.getName()))    .collect(Collectors.joining(","));
    Set
    names = userList.stream() .filter(user → "喵".equals(user.getName())) .collect(Collectors.toSet());
    TreeSet
    names = userList.stream() .filter(user → "喵".equals(user.getName())) .collect(Collectors.toCollection(TreeSet::new));
  • 并发编程:多线程实现

    Runnable race = () → System.out.println("Hello world!");new Thread(race).start();
  • Lambda 表达式的核心优势

  • 简洁性:减少繁琐的包装层,直接表达业务逻辑。
  • 灵活性和简洁性:支持只需传递方法或接收器的场景(如方法引用)。
  • 可读性:通过明确的箭头符号,代码结构一目了然。
  • Lambda 表达式的注意事项

  • 局部变量声明要求:对于 Lambda 使用的局部变量(捕获变量),无需显式声明为 final,但必须确保其不被后续代码修改(即可读性)。
  • 名称冲突问题:Lambda 参数名称不得与声明在其作用域内的局部变量同名。
  • 转载地址:http://efhvz.baihongyu.com/

    你可能感兴趣的文章
    JSONPath小试牛刀之Snack3
    查看>>
    Jenkins - 部署在Tomcat容器里的Jenkins,提示“反向代理设置有误”
    查看>>
    wxWidgets源码分析(3) - 消息映射表
    查看>>
    wxWidgets源码分析(5) - 窗口管理
    查看>>
    wxWidgets源码分析(7) - 窗口尺寸
    查看>>
    wxWidgets源码分析(8) - MVC架构
    查看>>
    wxWidgets源码分析(9) - wxString
    查看>>
    Mybatis Generator最完整配置详解
    查看>>
    [白话解析] 深入浅出熵的概念 & 决策树之ID3算法
    查看>>
    [梁山好汉说IT] 梁山好汉和抢劫银行
    查看>>
    [源码解析] 消息队列 Kombu 之 基本架构
    查看>>
    [源码分析] 消息队列 Kombu 之 启动过程
    查看>>
    [源码分析] 消息队列 Kombu 之 Consumer
    查看>>
    抉择之苦
    查看>>
    wx.NET CLI wrapper for wxWidgets
    查看>>
    Silverlight for linux 和 DLR(Dynamic Language Runtime)
    查看>>
    ASP.NET MVC Action Filters
    查看>>
    Windows SharePoint Services 3.0 Service Pack 2
    查看>>
    Powershell中禁止执行脚本解决办法
    查看>>
    HTTP协议状态码详解(HTTP Status Code)
    查看>>