例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相关推荐

  1. 如何开始使用Java中的Lambda表达式

    by Luis Santiago 路易斯·圣地亚哥(Luis Santiago) 如何开始使用Java中的Lambda表达式 (How to start working with Lambda Exp ...

  2. Server-Side UI Automation Provider - WinForm Sample

    Server-Side UI Automation Provider - WinForm Sample 2014-09-14 源代码  目录 引用程序集 提供程序接口 公开服务器端 UI 自动化提供程 ...

  3. 【转帖】漫话C++0x(四) —- function, bind和lambda

    实在是觉得此文总是去翻感觉不太好.于是果断转过来了,想看原文的请戳:http://www.wuzesheng.com/?p=2032 本文是C++0x系列的第四篇,主要是内容是C++0x中新增的lam ...

  4. 如何使用Node.js和CloudFormation在AWS Lambda中构建和部署GraphQL服务器

    介绍 (Introduction) I have been building GraphQL APIs in a Serverless environment for over 3 years now ...

  5. 【转载】C++ function、bind和lambda表达式

    本篇随笔为转载,原贴地址:C++ function.bind和lambda表达式. 本文是C++0x系列的第四篇,主要是内容是C++0x中新增的lambda表达式, function对象和bind机制 ...

  6. aws mongodb_使用Node.js,AWS Lambda和MongoDB Atlas进行无服务器开发

    aws mongodb This article was originally published on mongoDB. Thank you for supporting the partners ...

  7. AWS: S3+Lambda+CloudFront的使用(CDK)

    一.简介 AWS CloudFront 是一项快速内容分发网络 (CDN) 服务,可以安全地以低延迟和高传输速度向全球客户分发数据.视频.应用程序和 API,全部都在开发人员友好的环境中完成.例如:当 ...

  8. C++ lambda函数总结,看这一篇就够了

    C++ lambda函数 1 lambda函数简介 名称lambda来自lambda calculus(lambda演算),一种定义和应用函数的数学系统.这个系统中可以使用匿名函数,对于接收函数指针或 ...

  9. 【AI】PaddlePaddle实现自动语音识别

    文章目录 文档背景 安装环境 Python版本 pip环境 安装模型需要的环境 项目目录结构 数据准备 生成数据字典 数据预处理 训练模型 创建模型 构建模型的目的 模型黑盒在模型中充当什么角色 解码 ...

最新文章

  1. C++设计模式——单例模式
  2. ajax实现向上正在加载,向上滚动或者向下滚动分页异步加载数据(Ajax + lazyload)
  3. python爬虫应用实例_Python爬虫进阶必备 | 一个典型的 AES 加密在爬虫中的应用案例...
  4. Airflow 中文文档:教程
  5. Kotlin StandardKt 标准库源码走一波
  6. Inside the Linux Operating System[1]
  7. 福昕PDF阅读器 Foxit PDF Reader 中文绿色版
  8. arcmap中有火星坐标码_GIS转换之火星坐标系转换
  9. linux用户和组的权限管理
  10. jenkins 配置代理
  11. Python3.7 下安装pyqt5
  12. 不同类型的钻展图怎么设计?
  13. 微信小程序获取unionID思路整理
  14. linux系统磁盘分区查看,linux下磁盘查看和分区
  15. GLSL vary、atrribute、in、out的区别
  16. 发票查验平台验证码识别
  17. BRD文件转AD文件
  18. 《庄子·外篇·田子方第二十一》
  19. 士兵职业基本适应性测试软件,士兵职业基本适应性检测系统 类型1.2.3怎么分...
  20. 通过网页查看服务器算法,利用17ce自动化监测网站

热门文章

  1. 记录一个crontab的中使用python脚本的坑
  2. linux服务端口加密,linux – 如何通过单个端口处理加密和未加密的http连接
  3. python绘制简单城市剪影图_Python之绘制个人足迹地图
  4. html本文框百分比定位,HTML中三种定位relative,absolute,fixed后,盒子的百分比宽度及位置易错点...
  5. mysql性能优化较佳实践_MySQL性能优化的21个最佳实践 和 mysql使用索引
  6. Hbase安装及配置
  7. [Spring Boot核心功能]1. SpringApplication 启动引导类(2)
  8. python动态心形代码_父亲节,程序员几条代码硬核示爱
  9. Not so Mobile UVA - 839
  10. php输入数据不能为空,输入的数据模型标识(modelID)'的值不能为空或者空白字符串...