当前位置: 首页 > news >正文

网站设计高端网站制作打广告专用配图

网站设计高端网站制作,打广告专用配图,个人网站建设方案策划,网站改版会降权吗目录 什么是Lambda表达式 Lambda表达式规范 基本语法 参数列表 函数体 注意事项 如何定义函数接口 1.保证接口中只能有一个抽象方法 2.使用FunctionalInterface注解标记该接口为函数接口 使用Lambda调用无参函数 使用Lambda调用有参函数 使用Lambda的精简写法 使用…

目录

什么是Lambda表达式

Lambda表达式规范

基本语法

参数列表

函数体

注意事项

如何定义函数接口

1.保证接口中只能有一个抽象方法

2.使用@FunctionalInterface注解标记该接口为函数接口

使用Lambda调用无参函数

使用Lambda调用有参函数

使用Lambda的精简写法

使用Lambda实现集合遍历

使用Lambda实现集合排序

使用Lambda实现线程调用


什么是Lambda表达式

Lambda 表达式是 Java 8 引入的一种新的语法特性,它可以使得代码更加简洁、易读,并且支持函数式编程。Lambda 表达式实际上就是一个匿名方法,它可以作为参数传递给方法或者存储在变量中。

Lambda表达式规范

基本语法

Lambda 表达式由参数列表、箭头符号和函数体组成。

(参数列表) -> 函数体

参数列表

Lambda 表达式可以有零个或多个参数。如果没有参数,可以使用空括号表示 ();如果只有一个参数,可以省略括号;如果有多个参数,需要使用逗号将它们分隔开。

() -> System.out.println("Hello")

x -> x * x

(x, y) -> x + y

函数体

Lambda 表达式的函数体可以是一个表达式,也可以是一个语句块。如果函数体只有一条表达式,可以直接写在箭头后面;如果函数体包含多条语句,需要使用大括号 {} 将它们括起来,并使用分号 ; 分隔。

x -> x * x

(x, y) -> { int sum = x + y; System.out.println(sum); }

类型推断:Lambda 表达式中的参数类型可以根据上下文进行推断,不需要显式地指定类型。编译器会根据参数的使用情况来确定参数的类型。

(x, y) -> x + y

注意事项

Lambda 表达式只能用于函数式接口,即只包含一个抽象方法的接口。在使用 Lambda 表达式时,需要根据函数式接口的抽象方法定义来确定参数列表和返回值类型

如何定义函数接口

定义一个函数接口需要满足以下两点:

1.保证接口中只能有一个抽象方法

2.使用@FunctionalInterface注解标记该接口为函数接口

@FunctionalInterface
public interface MyInterfaceByJava8 {void add();//只能存在一个抽象方法}

使用Lambda调用无参函数

首先定义一个函数接口

@FunctionalInterface
public interface FuncInterface {void add();
}

接着实现并调用这个无参函数,这里展示传统的匿名内部类调用法,跟Lambda调用法。

public static void main(String [] args){//使用匿名内部类调用new FuncInterface(){@Overridepublic void add() {System.out.println("匿名内部类实现调用");}}.add();//使用Lambda调用((FuncInterface)()->{System.out.println("Lambda实现调用");}).add();}

可以看到使用Lambda代码更加简洁优雅

使用Lambda调用有参函数

定义函数接口

@FunctionalInterface
public interface FuncInterface2 {int del(int id);
}

实现并调用

public static void main(String [] args){int id=101;//使用匿名内部类调用int result1=new FuncInterface2(){@Overridepublic int del(int id) {System.out.println("匿名内部类实现调用:"+id);return 1;}}.del(id);//使用Lambda调用int result2=((FuncInterface2)(p)->{System.out.println("Lambda实现调用:"+p);return 1;}).del(id);System.out.println(result1);System.out.println(result2);}

使用Lambda的精简写法

当函数参数仅有一个时可以省略括号(没有参数时必须用空括号,不能省

//普通写法
int result2=((FuncInterface2)(p)->{System.out.println("Lambda实现调用:"+p);return 1;}).del(id);//精简写法--省略参数园括号
int result2=((FuncInterface2)p->{System.out.println("Lambda实现调用:"+p);return 1;}).del(id);

当函数体只有一条语句可以省略{}

//普通写法
((FuncInterface)()->{System.out.println("Lambda实现调用");}).add();//精简写法--省略函数体括号
((FuncInterface)()->System.out.println("Lambda实现调用")).add();

当函数体仅有一条语句且是返回语句时,可以省略return

//普通写法
int result2=((FuncInterface2)p->return 1).del(id);//精简写法--省略return
int result2=((FuncInterface2)p->1).del(id);

使用Lambda实现集合遍历

public static void main(String [] args){List<String> names=Arrays.asList("小明","小黑","小红");//传统遍历--增强forfor(String name:names){System.out.println(name);}//传统遍历--匿名内部类names.forEach(new Consumer<String>(){@Overridepublic void accept(String name) {System.out.println(name);}});//Lambda表达式遍历names.forEach(name->System.out.println(name));}

使用Lambda实现集合排序

将学生集合的学生按照年龄排序

public static void main(String [] args){List<Student> students1=Arrays.asList(new Student("小明",18),new Student("小黑",16),new Student("小红",17));List<Student> students2=Arrays.asList(new Student("小明",18),new Student("小黑",16),new Student("小红",17));//传统排序--匿名内部类students1.sort(new Comparator<Student>(){@Overridepublic int compare(Student stu1, Student stu2) {return stu1.getAge()- stu2.getAge();}});//Lambdastudents2.sort((stu1,stu2)->stu1.getAge()-stu2.getAge());//省略returnSystem.out.println(students1);System.out.println(students2);}

使用Lambda实现线程调用

public static void main(String [] args){//传统调用new Thread(new Runnable(){@Overridepublic void run() {System.out.println("子线程运行了");}}).start();//Lambdanew Thread(()->System.out.println("子线程运行了")).start();}

http://www.yayakq.cn/news/933689/

相关文章:

  • 三个年轻人做电影网站800万wordpress更换主题500
  • 杭州系统开发关键词推广seo怎么优化
  • 自适应网站制作公司云伙伴小程序开发公司
  • 做菠菜网站音乐网站手机模板
  • 公共资源交易中心工作总结郑州网站优化渠道
  • 网站漏洞扫描服务html做网站实战教程
  • 买个网站域名要多少钱win7可以做网站吗
  • 网站access数据库被攻击不断增大有哪些网站平台
  • c 语言网站建设上海网站建设兴策
  • 网站建设目标是手机编程工具
  • 网站建设 环保 图片如何仿网站模板
  • 做网站做什么好珠海建站平台
  • 网站建设属于资产做竞品分析去哪个网站
  • 如何做网站页面免费的那个网站是专门做机械设备
  • 阿里巴巴做网站找谁静态网站可以做留言板
  • 活动策划公司网站成都营销网站
  • 网站建设设计哪个济南兴田德润简介番禺网站建设开发
  • 做网站首先必须切割图片吗建设通网站联系电话
  • 网站服务器升级需要多久js网页设计案例
  • 湖畔魔豆基金会公益网站开发wordpress代码修改插件
  • 网站开发流程需要用到的语言网站制作视频教程下载
  • 网站建设丨金手指15泰州网站建设找思创
  • 保健品网站源代码网站开发需求方案
  • 蓝色清爽网站淘宝做首页热点的什么网站
  • 查公司资质在哪个网站安阳专业seo地址
  • 网站设计 加英文费用wordpress网站工具栏
  • 网站建设专业吗地方网站类型
  • 做网站如何适应分辨率中小企业信息服务平台
  • 宁乡网站建设点燃网络杭州软件定制
  • 手机网站专题wordpress 添加关键词和描述