java lamda表达式

java lamda表达式lamda的语法:以逗号分隔,以()关闭的形参:(o1,o2) 箭头标记:-> 主体部分则是一个单表达式或者声明代码块。如下是单表达式形式:Integer.compare(m.getWeight(),n.getWeight())大致就是(参数x1,x2…..xn)–>{代码块}使用场景1:用lambda表达式实现Runnable//jav…

大家好,又见面了,我是你们的朋友全栈君。

 lamda的语法:

  • 以逗号分隔,以()关闭的形参:(o1, o2)
  • 箭头标记:->
  • 主体部分则是一个单表达式或者声明代码块。如下是单表达式形式:Integer.compare(m.getWeight(), n.getWeight())

大致就是(参数x1,x2…..xn)–> { 代码块 }    

使用场景1:用lambda表达式实现Runnable

//java1.8之前
new Thread(new Runnable() {
    @Override
    public void run() {
    System.out.println("Before Java8, too much code for too little to do");
    }
}).start();

//java 1.8之后

new Thread( () -> System.out.println("In Java8, Lambda expression rocks !!") ).start();

使用场景2: lambda表达式进行事件处理

JButton show =  new JButton(“Show”);
show.addActionListener(new ActionListener() {

    @Override
    public void actionPerformed(ActionEvent e) {

    System.out.println(“Event handling without lambda expression is boring”);
    }
});

// Java 8方式:
show.addActionListener((e) -> {

    System.out.println(“Light, Camera, Action !! Lambda expressions Rocks”);
});

 使用场景3:forEach 的使用

List<Person> personList = new ArrayList<>();
personList.add(new Person("yang","cai"));
personList.add(new Person("yang","fen"));
personList.add(new Person("yang","feng"));
//java 1.8之前
for(Person p : personList){ System.out.println(p.getFirstName() }
//java 1.8
personList.forEach(x->System.out.println(x.getFirstName()));

使用场景4:Supplier,Predicate,Comparator,Function,Consumer等接口的使用,见java函数式编程之五个基本接口 

使用场景5:在Java stream中的使用,其实也是场景4的使用,下一节讲 java stream学习讲到

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/141823.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • redis击穿,穿透,雪崩以及解决方案「建议收藏」

    redis击穿,穿透,雪崩以及解决方案「建议收藏」1击穿:指的是单个key在缓存中查不到,去数据库查询,这样如果数据量不大或者并发不大的话是没有什么问题的。如果数据库数据量大并且是高并发的情况下那么就可能会造成数据库压力过大而崩溃注意:这里指的是单个key发生高并发!!!解决方案:1)通过synchronized+双重检查机制:某个key只让一个线程查询,阻塞其它线程在同步块中,继续判断检查,保证不…

    2022年9月14日
    1
  • 使用 JavaScript 下载文件

    使用 JavaScript 下载文件使用JavaScript下载文件

    2022年5月29日
    37
  • List集合转数组

    List集合转数组在集合与数组互转的小问题一、集合转数组的时候,集合提供了两种方法1,toArray的不带参方法但是其返回值类型为Object在进行强转的时候会报出java.lang.ClassCastException类转换异常2,toArray的带参方法,在创建数组的时候指定数组的长度,最好与集合size保持一致,否则集合长度大于数组长度,原数组江北重置为null如图,指定数组长度为集合…

    2022年6月22日
    56
  • SQL中的连接查询与嵌套查询「建议收藏」

    SQL中的连接查询与嵌套查询「建议收藏」连接查询若一个查询同时涉及两个或两个以上的表,则称之为连接查询。连接查询是数据库中最最要的查询,包括:1、等值连接查询2、自然连接查询3、非等值连接查询4、自身连接查询5、外连接查询6、复合条件查询等值与非等值连接查询:比较运算符主要有=、>、=、)等。下面来看一个例子:假设有一个学生数据库,其中有三张表,即学生信息表(Student

    2022年5月4日
    47
  • 离线安装python第三方库_断网python第三方库安装

    离线安装python第三方库_断网python第三方库安装在线安装运行Pycharm,打开需要添加scapy文件的项目,以TestScapy为例点击工具栏的File选项,选中Settings,单击打开选中Settings的Project->ProjectInterpreter…

    2022年8月29日
    0
  • idea创建Java web项目_idea导入maven项目

    idea创建Java web项目_idea导入maven项目准备:1.安装jdk1.72.安装tomcat1.8一、创建并设置javaweb工程1.创建javaweb工程File–>New–>Project…设置工程名字:创建完成后工程结构如下: 2.Web工程设置2.1在WEB-INF目录下点击右键,New–>Directory,创

    2022年9月19日
    0

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号