Simple Lambda Sample
例1 用lambda表达式实现Runnable
public static void main(String[] args) {Runnable runnable = () -> System.out.println("This is Lambda Test!");Thread thread = new Thread(runnable);thread.start();
}
复制代码
例2 使用Java 8 lambda表达式进行事件处理
public static void main(String[] args) {JButton show = new JButton("Show");show.addActionListener((e) -> {System.out.println("This is Lambda Sample For Action");});
}
复制代码
例3 使用lambda表达式对列表进行迭代
public static void main(String[] args) {List<String> features = Arrays.asList("Lambdas", "Default Method", "Stream API", "Date and Time API");features.forEach(n -> System.out.println(n));
}
复制代码
例4 使用lambda表达式和函数式接口Predicate
public static void main(String[] args) {List<String> languages = Arrays.asList("Java", "Scala", "C++", "Haskell", "Lisp");System.out.println("Languages which starts with J :");filter(languages, (str)->str.startsWith("J"));System.out.println("Languages which ends with a ");filter(languages, (str)->str.endsWith("a"));System.out.println("Print all languages :");filter(languages, (str)->true);System.out.println("Print no language : ");filter(languages, (str)->false);System.out.println("Print language whose length greater than 4:");filter(languages, (str)->str.length() > 4);
}public static void filter(List<String> names, Predicate<String> condition) {names.stream().filter(name->condition.test(name)).forEach(name-> System.out.println(name));
}
复制代码
例5 如何在lambda表达式中加入Predicate
public static void main(String[] args) {List<String> languages = Arrays.asList("Java", "Scala", "Basic", "Haskell", "Lisp");Predicate<String> startWithJ = n->n.startsWith("J");Predicate<String> fourLengthLetter = n->n.length() == 4;languages.stream().filter(startWithJ.and(fourLengthLetter)).forEach(n-> System.out.println("nName, which starts with 'J' and four letter long is : " + n));Predicate<String> endWithA = n->n.endsWith("a");Predicate<String> fiveLengthLetter = n->n.length() == 5;languages.stream().filter(endWithA.or(fiveLengthLetter)).forEach(n-> System.out.println("nName, which end with 'a' or five letter long is : " + n));
}
复制代码
例6 Java 8中使用lambda表达式的Map和Reduce示例
public static void main(String[] args) {List<Integer> costBeforeTax = Arrays.asList(100, 200, 300, 400);costBeforeTax.stream().map(cost->cost + .12*cost).forEach(cost-> System.out.println(cost));double bill = costBeforeTax.stream().map(cost->cost + .12*cost).reduce((sum, cost)->sum + cost).get();System.out.println("Total:" + bill);
}
复制代码
例7 通过过滤创建一个String列表
public static void main(String[] args) {List<String> strList = Arrays.asList("abcd", "abcde", "abc", "ab");List<String> filtered = strList.stream().filter(x->x.length()>2).collect(Collectors.toList());System.out.printf("Original List : %s, filtered list : %s %n", strList, filtered);
}
复制代码
例8 对列表的每个元素应用函数
public static void main(String[] args) {List<String> G7 = Arrays.asList("USA", "Japan", "France", "Germany", "Italy", "U.K.","Canada");String G7Countries = G7.stream().map(x -> x.toUpperCase()).collect(Collectors.joining(", "));System.out.println(G7Countries);
}
复制代码
例9 复制不同的值,创建一个子列表
public static void main(String[] args) {List<Integer> numbers = Arrays.asList(9, 10, 3, 4, 7, 3, 4);List<Integer> distinct = numbers.stream().map(i->i*i).distinct().collect(Collectors.toList());System.out.printf("Original List : %s, Square Without duplicates : %s %n", numbers, distinct);
}
复制代码
例10 计算集合元素的最大值、最小值、总和以及平均值
public static void main(String[] args) {List<Integer> primes = Arrays.asList(2, 3, 5, 7, 11, 13, 17, 19, 23, 29);IntSummaryStatistics stats = primes.stream().mapToInt(x->x).summaryStatistics();System.out.println("Highest prime number in List : " + stats.getMax());System.out.println("Lowest prime number in List : " + stats.getMin());System.out.println("Sum of all prime numbers : " + stats.getSum());System.out.println("Average of all prime numbers : " + stats.getAverage());
}
复制代码
附:源码地址
Simple Lambda Sample相关推荐
- 如何开始使用Java中的Lambda表达式
by Luis Santiago 路易斯·圣地亚哥(Luis Santiago) 如何开始使用Java中的Lambda表达式 (How to start working with Lambda Exp ...
- Server-Side UI Automation Provider - WinForm Sample
Server-Side UI Automation Provider - WinForm Sample 2014-09-14 源代码 目录 引用程序集 提供程序接口 公开服务器端 UI 自动化提供程 ...
- 【转帖】漫话C++0x(四) —- function, bind和lambda
实在是觉得此文总是去翻感觉不太好.于是果断转过来了,想看原文的请戳:http://www.wuzesheng.com/?p=2032 本文是C++0x系列的第四篇,主要是内容是C++0x中新增的lam ...
- 如何使用Node.js和CloudFormation在AWS Lambda中构建和部署GraphQL服务器
介绍 (Introduction) I have been building GraphQL APIs in a Serverless environment for over 3 years now ...
- 【转载】C++ function、bind和lambda表达式
本篇随笔为转载,原贴地址:C++ function.bind和lambda表达式. 本文是C++0x系列的第四篇,主要是内容是C++0x中新增的lambda表达式, function对象和bind机制 ...
- aws mongodb_使用Node.js,AWS Lambda和MongoDB Atlas进行无服务器开发
aws mongodb This article was originally published on mongoDB. Thank you for supporting the partners ...
- AWS: S3+Lambda+CloudFront的使用(CDK)
一.简介 AWS CloudFront 是一项快速内容分发网络 (CDN) 服务,可以安全地以低延迟和高传输速度向全球客户分发数据.视频.应用程序和 API,全部都在开发人员友好的环境中完成.例如:当 ...
- C++ lambda函数总结,看这一篇就够了
C++ lambda函数 1 lambda函数简介 名称lambda来自lambda calculus(lambda演算),一种定义和应用函数的数学系统.这个系统中可以使用匿名函数,对于接收函数指针或 ...
- 【AI】PaddlePaddle实现自动语音识别
文章目录 文档背景 安装环境 Python版本 pip环境 安装模型需要的环境 项目目录结构 数据准备 生成数据字典 数据预处理 训练模型 创建模型 构建模型的目的 模型黑盒在模型中充当什么角色 解码 ...
最新文章
- C++设计模式——单例模式
- ajax实现向上正在加载,向上滚动或者向下滚动分页异步加载数据(Ajax + lazyload)
- python爬虫应用实例_Python爬虫进阶必备 | 一个典型的 AES 加密在爬虫中的应用案例...
- Airflow 中文文档:教程
- Kotlin StandardKt 标准库源码走一波
- Inside the Linux Operating System[1]
- 福昕PDF阅读器 Foxit PDF Reader 中文绿色版
- arcmap中有火星坐标码_GIS转换之火星坐标系转换
- linux用户和组的权限管理
- jenkins 配置代理
- Python3.7 下安装pyqt5
- 不同类型的钻展图怎么设计?
- 微信小程序获取unionID思路整理
- linux系统磁盘分区查看,linux下磁盘查看和分区
- GLSL vary、atrribute、in、out的区别
- 发票查验平台验证码识别
- BRD文件转AD文件
- 《庄子·外篇·田子方第二十一》
- 士兵职业基本适应性测试软件,士兵职业基本适应性检测系统 类型1.2.3怎么分...
- 通过网页查看服务器算法,利用17ce自动化监测网站
热门文章
- 记录一个crontab的中使用python脚本的坑
- linux服务端口加密,linux – 如何通过单个端口处理加密和未加密的http连接
- python绘制简单城市剪影图_Python之绘制个人足迹地图
- html本文框百分比定位,HTML中三种定位relative,absolute,fixed后,盒子的百分比宽度及位置易错点...
- mysql性能优化较佳实践_MySQL性能优化的21个最佳实践 和 mysql使用索引
- Hbase安装及配置
- [Spring Boot核心功能]1. SpringApplication 启动引导类(2)
- python动态心形代码_父亲节,程序员几条代码硬核示爱
- Not so Mobile UVA - 839
- php输入数据不能为空,输入的数据模型标识(modelID)'的值不能为空或者空白字符串...