java8新特性03lambda表达式

Hermioner      2022-04-12     158

关键词:

一. Lambda表达式概述

Lambda表达式是Java8中最大的变化。它允许我们将一个函数当作方法的参数,或者说把一段代码当作数据使用。很多基于JVM平台的语言一开始就支持Lambda表达式,比如Scala,但是Java语言一直只能使用匿名内部类来替代Lambda表达式,直到Java8才使用Lambda表达式。

二.定义

Lambda表达式是一个匿名函数,它是一个函数式接口的具体实现方式;使用Lambda语法可以用来代替Java8之前的匿名内部类,从而简化代码。

任意只包含一个抽象方法的接口(函数式接口),我们都可以用来做成Lambda表达式;

三. Lambda表达式语法结构

包含三个部分

(1)参数:一个括号内用逗号分隔的形式参数,参数是函数式接口里面方法的参数;

(2)箭头:->

(3)方法体:一个方法体,可以是表达式和代码块,方法体是函数式接口里面方法的实现,如果Lambda的功能语句块太复杂,我们可以使用大括号包起来,跟普通的Java方法一样;

总体结构如下:(parameters)->expression或者(parameters)->{statements;}

四. 具体使用

技术分享图片
 1 package com.test.a;
 2 
 3 import java.util.ArrayList;
 4 import java.util.Collections;
 5 import java.util.Comparator;
 6 import java.util.List;
 7 
 8 public class Test {
 9 
10     public static void main(String args[]) {
11         List<String> list=new ArrayList<String>();
12         list.add("d");
13         list.add("a");
14         list.add("c");
15         list.add("b");
16         
17         //法一
18 //        Collections.sort(list, new Comparator<String>() {
19 //
20 //            @Override
21 //            public int compare(String o1, String o2) {
22 //                // TODO Auto-generated method stub
23 //                return o1.compareTo(o2);
24 //            }
25 //            
26 //        });
27         
28         //法二
29 //        Collections.sort(list, (String o1,String o2)->o1.compareTo(o2));
30         //法三
31         Collections.sort(list, (String o1,String o2)->{return o1.compareTo(o2);});
32         for(String a:list)
33         {
34             System.out.println(a);
35         }
36     }
37 }
View Code
技术分享图片
1 a
2 b
3 c
4 d
View Code

note: 上面的String o1也可以不加String, jvm会自己解析;一句话也可以用大括号代替,但是必须是完整的语句

 

java8新特性lambda表达式

一、Lambda表达式是什么?Lambda读音:拉姆达。Lambda是一个匿名函数,匿名函数就是一个没有名字的函数。Lambda允许把函数作为一个方法的参数(函数作为参数传递进方法中)。Lambda表达式可以使代码变的更加简洁紧凑。语法lambda... 查看详情

java8新特性:lambda表达式函数式接口以及方法引用(代码片段)

文章目录Java8新特性:Lambda表达式1.Lambda表达式概念2.Lambda表达式语法3.函数式接口(FunctionalInterface)4.Lambda表达式精简语法5.方法引用(MethodReference)5.1实例方法引用5.2静态方法引用5.3构造方法引用Java8新特性:Lambda表达式1.Lambd... 查看详情

java8新特性——lambda表达式

其实有规律,总结一下规律就行packagelambda;/*lambda表达式的使用1.举例:()->Integer.compare(o1,o2);2.格式:lambda形参列表(接口中的抽象方法形参列表)->lambda体(重写抽象方法的方法体)3.lambda表达式的使用总结:lambda左边的形参列表... 查看详情

java8新特性之一:lambda表达式

...具类、JVM等),其中最重要的升级是它给我们带来了Lambda表达式和StreamAPI。1、什么是Lambda表达式?  Lambda是一个匿名函数,可以理解为是一段可以传递的代码,可以将代码像传递参数、传递数据一样进行传输。使用Lambda表达... 查看详情

java8新特性_lambda表达式

最近一直找java8相关新特性的文章,发现都太没有一个连贯性,毕竟大家写博客肯定都有自己的侧重点,这里找到一本书,专门介绍java8新特性的,感觉大家可以看看《写给大忙人看的JavaSE8》.这里我会结合书中的知识以及网上的... 查看详情

java8新特性总结

Java8Java8新特性新特性讲讲师:李贺飞飞 主要内容1.Lambda表达式2.函数式接口3.方法引用与构造器引用4.StreamAPI5.接口中的默认方法与静态方法6.新时间日期API7.其他新特性 Java8新特性简介.速度更快.代码更少(增加了新的语法Lambda表... 查看详情

java8新特性--lambda表达式

一、Lambda表达式是什么?Lambda表达式有两个特点一是匿名函数,二是可传递。匿名函数的应用场景是通常是在需要一个函数,但是又不想费神去命名一个函数的场合下使用Lambda表达式。lambda表达式所表示的匿名函数的内容应该是... 查看详情

java8新特性lambda练习

练习内容:1.实现案例/***使用lambda表达式定义Collections.sort()*//***使用lambda表达式自定义比对方式*/@TestpublicvoidTest4(){Collections.sort(emps,(e1,e2)->{if(e1.getAge()==e2.getAge()){returne1.getName().compareTo(e2.getName() 查看详情

java8新特性-lambda表达式

1. 什么是Lambda表达式?Lambda表达式就是可以把函数作为参数传递,或者说把代码作为数据传递给函数。2.Lambda表达式的语法格式基本语法格式如下:650)this.width=650;"src="http://7xrbwe.com1.z0.glb.clouddn.com/16-2-29%2F27102800.jpg"width="432"height... 查看详情

java8新特性-lambda表达式

...了java.util.funcion包,里面包含常用的函数接口,这是Lambda表达式的基础,Java集合框架也新增部分接口,以便与Lambda表达式对接。Collections中的常用函数接口Java集合框架的接口继承结构:   上图中蓝色标记和橙色标记的... 查看详情

java8新特性之lambda表达式

简介Java8带来的新特性之一Lambda表达式,又称之为函数式编程,核心思想是将面向对象中的传递对象变为传递行为语法expression=(variable)->anctioneg:intsum=(x,y)->x+y;variable:相当于一个变量,可以有多个action:代码逻辑部分,可以是一... 查看详情

java8新特性

一、Lambda表达式1、什么是Lambda表达式?  Lambda本质是一个匿名函数,可以理解为一段可以传递的代码,像数据一样传输。  使用Lambda可以简化代码、使代码更紧凑、更灵活。  使用Lambda表达式前提需要函数式接口支持。... 查看详情

java8新特性-lambda表达式

1. 什么是Lambda表达式?Lambda表达式就是可以把函数作为参数传递,或者说把代码作为数据传递给函数。2.Lambda表达式的语法格式基本语法格式如下:基本语法下多个变体的说明:1).多个参数中间用逗号分隔:1(intm,intn)=>{intresu... 查看详情

java8新特性:lambda表达式方法和构造器引用streamapi新时间与日期api注解

Java8新特性:Lambda表达式、方法和构造器引用、StreamAPI、新时间与日期API、注解1、Java8新特性1.1、主要的新特性:1.2、编程风格2、Lambda表达式2.1、Lambda基础语法2.2、Lambda表达式需要“函数式接口”的支持2.3、Lambda表达式... 查看详情

java8新特性---lambda表达式

可以把Lambda表达式理解为一种简洁的可传递匿名函数:它没有名称,但它有参数列表、函数主体、返回类型,可能还有一个可以抛出的异常列表。不使用lambda表达式:Comparator<Apple>byWeight=newComparator<Apple>(){  publicintcompa... 查看详情

java8新特性

...了不少新特性。我们来一一回顾一下这些特性。一、Lambda表达式Lambda表达式可以说是Java8最大的卖点,她将函数式编程引入了Java。Lambda允许把函数作为一个方法的参数,或者把代码看成数据。一个Lambda表达式可以由用逗号分隔的... 查看详情

3java8新特性-lambda基础语法

一、Lambda表达式的基础语法:Java8中引入了一个新的操作符"——>"该操作符成为箭头操作符或ambda操作符    箭头操作符将Lambda表达式拆分成两部分:    左侧:Lambda表达式的参数列表  ... 查看详情

java8新特性之上

一、Lambda表达式Lambda是一个匿名函数。可以写出更简洁、更灵活的代码//匿名内部类Runnabler1=newRunnable(){publicvoidrun(){System.out.println("这是一个匿名内部类");};}//Lambda表达式Runnabler=()->System.out.println("Lambda表达式");操作符:  -& 查看详情