jdk8 lambda
import java.util.ArrayList;
import java.util.Comparator;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.function.Consumer;
import org.junit.Test;
/*
* 一、Lambda 表达式的基础语法:Java8中引入了一个新的操作符 "->" 该操作符称为箭头操作符或 Lambda 操作符
* 箭头操作符将 Lambda 表达式拆分成两部分:
*
* 左侧:Lambda 表达式的参数列表
* 右侧:Lambda 表达式中所需执行的功能, 即 Lambda 体
*
* 语法格式一:无参数,无返回值
* () -> System.out.println("Hello Lambda!");
*
* 语法格式二:有一个参数,并且无返回值
* (x) -> System.out.println(x)
*
* 语法格式三:若只有一个参数,小括号可以省略不写
* x -> System.out.println(x)
*
* 语法格式四:有两个以上的参数,有返回值,并且 Lambda 体中有多条语句
* Comparator<Integer> com = (x, y) -> {
* System.out.println("函数式接口");
* return Integer.compare(x, y);
* };
*
* 语法格式五:若 Lambda 体中只有一条语句, return 和 大括号都可以省略不写
* Comparator<Integer> com = (x, y) -> Integer.compare(x, y);
*
* 语法格式六:Lambda 表达式的参数列表的数据类型可以省略不写,因为JVM编译器通过上下文推断出,数据类型,即“类型推断”
* (Integer x, Integer y) -> Integer.compare(x, y);
*
*
* 二、Lambda 表达式需要“函数式接口”的支持
* 函数式接口:接口中只有一个抽象方法的接口,称为函数式接口。 可以使用注解 @FunctionalInterface 修饰
* 可以检查是否是函数式接口
*/
public class TestLambda2 {
@Test
public void test1(){
int num = 0;//jdk 1.7 前,必须是 final
Runnable r = new Runnable() {
@Override
public void run() {
System.out.println("Hello World!" + num);
}
};
r.run();
System.out.println("-------------------------------");
Runnable r1 = () -> System.out.println("Hello Lambda!");
r1.run();
}
@Test
public void test2(){
Consumer<String> con = x -> System.out.println(x);
con.accept("我最爱Java!");
}
@Test
public void test3(){
Comparator<Integer> com = (x, y) -> {
System.out.println("函数式接口");
return Integer.compare(x, y);
};
}
@Test
public void test4(){
Comparator<Integer> com = (x, y) -> Integer.compare(x, y);
}
@Test
public void test5(){
// String[] strs;
// strs = {"aaa", "bbb", "ccc"};
List<String> list = new ArrayList<>();
show(new HashMap<>());
}
public void show(Map<String, Integer> map){
}
//需求:对一个数进行运算
@Test
public void test6(){
Integer num = operation(100, (x) -> x * x);
System.out.println(num);
System.out.println(operation(200, (y) -> y + 200));
}
public Integer operation(Integer num, MyFun mf){
return mf.getValue(num);
}
}
jdk8 lambda相关推荐
- JDK8 lambda的会话指南–术语表
上次出现-我写了一篇与JDK8为我们提供的新方法有关的文章. 最令我兴奋的功能是lambda. 我必须承认,在即将成为浪子的第一年(在此期间,我使用C#开发了该产品),我喜欢LINQ和它可以做的漂亮, ...
- java8 大到小排序,屌炸天,JDK8的排序大法!!
今天总结了下JDK中排序的方法,包括JDK8中强大的lambda表达式及函数式接口运用,不废话,请看下面示例. public class Test { public static void main( ...
- JDK 8 新特性 之 Lambda表达式
前言 Lambda 表达式,也可称为闭包,它是推动 Java 8 发布的最重要新特性. Lambda 允许把函数作为参数传递进方法中. 使用 Lambda 表达式可以使代码变的更加简洁紧凑. lamb ...
- JDK8的排序大法!!
转载自 屌炸天,JDK8的排序大法!! 今天总结了下JDK中排序的方法,包括JDK8中强大的lambda表达式及函数式接口运用,不废话,请看下面示例. public class Test {publi ...
- Lambda 表达式详解~简化匿名内部类
本节将介绍如何使用Lambda表达式简化匿名内部类的书写,但Lambda表达式并不能取代所有的匿名内部类,只能用来取代函数接口(Functional Interface)的简写.先别在乎细节,看几个例 ...
- 四万字 Lambda 表达式完整教程(强烈建议收藏)
点击关注公众号,利用碎片时间学习 Java Lambda表达式的一个重要用法是简化某些匿名内部类(Anonymous Classes)的写法.实际上Lambda表达式并不仅仅是匿名内部类的语法糖,JV ...
- 函数式编程与Lambda表达式
函数式编程与Lambda表达式 1 函数式编程的优势 1.1 函数式编程思想 在数学中,函数就是有输入量.输出量的一套计算方案,也就是"拿什么东西做什 么事情".编程中的函数,也有 ...
- jdk8 新特性之 List 排序
一.排序示例 升序–> 从小到大 降序–> 从大到小 age --> 排序字段 jdk8 -> Lambda 循环打印println -> list.forEach(Sy ...
- JDK8新特性相关知识讲解汇总
以下是博主本人对jdk8相关新知识的学习以及讲解的汇总,如果对你帮助可以多多点赞和关注我哦~ (1)JDK8新特性-Lambda表达式详细介绍以及应用 (2)JDK8 关于中断线程的总结 (3)JDK ...
- 用通俗易懂的大白话搞明白Java里的函数式编程和Lambda表达式
今天,用通俗易懂的大白话来彻底搞明白Java里的函数式编程和Lambda表达式 为什么引入函数式编程,lambda表达式? 大家都知道,JDK1.8引入了函数式编程,lambda表达式. 那有没有想过 ...
最新文章
- windows的常用快捷键(实用篇)
- Chrome开发者工具使用console.trace的一个小技巧
- java ftp 关闭连接_java - 使用Java Apache FTPClient进行FTP TLS获取“握手时远程主机关闭连接”[重复] - 堆栈内存溢出...
- JAVA多线程之Synchronize 关键字原理
- 再见,Eclipse
- 【Flink】Error during binlog processing last offset stored = null binglog reader near position
- flask(四)jinja2模板
- 在 ubuntu 下优雅的使用 Sublime Text 3 写 Python
- SSDP:DDoS***的“新宠”
- 手把手教你python实现量价形态选股知乎_Python实现量化选股
- Linux系统U盘怎么格式化,u盘怎么格式化各系统教程
- 我的世界服务器指令修复耐久,我的世界修改装备耐久度指令 | 手游网游页游攻略大全...
- 路由器和电脑IP地址、端口号、网卡mac查询方式
- EMC基础知识总结,写的太全了!
- 慕学在线--2、开发准备及布署上线
- Web前端开发-1-考试总结
- 企业从小做大的步骤-摘自《企业自动运行系统》
- 机器学习面试题之——简单介绍最小二乘
- 最佳引脚使用 – ESP8266 ESP12S
- Autosar之自签名证书与CA证书
热门文章
- 勘测定界坐标交换格式文本文件转换成 shapefile 格式
- javaweb mysql毕业生管理系统_javaweb高校毕业生就业管理系统, springmvc+mysql
- Java之将GB2312编码转化为汉字
- typecho插件,typechoSEO插件,typecho程序插件
- Python 爬虫 爬取视频
- 如何使用Python实现一个pdf阅读器?
- NOIp2016纪录[那些我所追求的]
- 硕士研究生的文献阅读方法以及文献阅读笔记模板
- Windows10新版本设置卓越性能
- 数据挖掘案例实战:利用LDA主题模型提取京东评论数据(四)