一行中的Java 8 Lambda
如果您了解这一行,或者更好的是仍然可以编写此代码,则可以说您已经了解了Java 8 Lambda的本质。 当然,它们可以与集合一起使用。
我在Peter Lawrey最近的一次演讲中发现了这一点 。 (有空余时间绝对值得观看整个演示文稿。)
无论如何,任务是在文件中找到最常见的20个单词 :
如您所见,使用Java 8,实际上可以在一行(尽管很长)中完成。
如果您不习惯使用lambda,则代码可能看起来有些吓人,但实际上它是声明性的,当您通过逻辑时,它的读取就很容易了。
package util;import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.Arrays;
import java.util.Comparator;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;/*** Lambdas in one line*/
public class LambdaTest {public static List<String> parse(Path path) throws Exception{return Files.lines(path).parallel().flatMap(line -> Arrays.asList(line.split("\\b")).stream()).collect(Collectors.groupingBy(w -> w, Collectors.counting())).entrySet().stream().sorted(Comparator.comparing(Map.Entry<String, Long>::getValue).reversed()).limit(20).map(Map.Entry::getKey).collect(Collectors.toList());}public static void main(String... args) throws Exception{System.out.println(parse(Paths.get(args[0])));}
}
翻译自: https://www.javacodegeeks.com/2015/04/java-8-lambdas-in-one-line.html
一行中的Java 8 Lambda相关推荐
- 在JDT中使用Java 8 Lambda
旧 Curmudgeon 认识Smalltalk的Dude 在修改Eclipse Java开发工具 (JDT)项目正在开发的Java 8支持时,我一直在使用这种语言. 我承认我对Java 8中的lam ...
- java jdt_在JDT中使用Java 8 Lambda
java jdt 旧 Curmudgeon 认识Smalltalk的Dude 在修改Eclipse Java开发工具 (JDT)项目正在开发的Java 8支持时,我一直在使用这种语言. 我承认我对Ja ...
- lambda表达式_在Java 7或更早版本中使用Java 8 Lambda表达式
lambda表达式 我认为没有人会拒绝Java 8引入的Lambda表达式的有用性.但是,许多项目都停留在Java 7甚至旧版本上. 升级可能既耗时又昂贵. 如果第三方组件与Java 8不兼容,则可能 ...
- 在Java 7或更早版本中使用Java 8 Lambda表达式
我认为没有人会拒绝Java 8引入的Lambda表达式的有用性.但是,许多项目都停留在Java 7甚至旧版本上. 升级可能既耗时又昂贵. 如果第三方组件与Java 8不兼容,则可能根本无法升级. 除此 ...
- java在输入的同一行中输出,JAVA输入输出总结
标准输入: Scanner cin = new Scanner(System.in); cin.nextLine();:输入一行,可能存在空格,功能特点类似于C中的gets(): cin.next() ...
- java 8 lambda表达式中的异常处理
文章目录 简介 处理Unchecked Exception 处理checked Exception 总结 java 8 lambda表达式中的异常处理 简介 java 8中引入了lambda表达式,l ...
- java lambda::_书评:精通Lambda:多核世界中的Java编程
java lambda:: 从版本8开始,λ编程(lambda编程)终于在Java世界中引入.此功能将在很大程度上改变Java开发人员的编程方式以及针对样板代码的新"武器". Ja ...
- 书评:精通Lambda:多核世界中的Java编程
从版本8开始,λ编程(lambda编程)终于在Java世界中引入.此功能将在很大程度上改变Java开发人员的编程方式以及针对样板代码的新"武器". Java 8通过引入新的Stre ...
- JAVA 8 lambda 表达式实现按某个属性值查找对象集合中符合条件的对象
转载自:https://www.cnblogs.com/lindsayYang/p/9843599.html JAVA 8 lambda 表达式实现按某个属性值查找对象集合中符合条件的对象 当前的需求 ...
最新文章
- 程序员的身体一定要好
- 【百家稷学】卷积神经网络的前世、今生与未来(武汉工程大学技术分享)
- php中命名空间重要吗,关于php:PHP中命名空间是怎样的存在一
- .Net Cancellable Task - APM异步超时机制扩展
- Vue.js的计算属性
- 【C语言及程序设计】项目2-15:模块化的简单银行系统设计
- LeetCode 1602. 找到二叉树中最近的右侧节点(BFS)
- opensips mysql 认证_基于ubuntu中使用mysql实现opensips用户认证的解决方法
- 快速排序的递归方式和非递归方式
- 内存单元地址求字节大小的计算方法
- Ubuntu 20.04(Linux Mint XFCE 20)安装LBP2900打印机
- Android仓库管理系统
- 《朗读者》读后感作文3100字
- 【六祎 - HTML模板】提交按钮模板-带特效
- 排列显示阿拉伯语、数字及英文时的处理方法
- 单反相机风景摄影易记易学口诀
- STM32 SPI片选信号拉不高的解决方案
- 地图与定位(五)高德地图服务一
- 大学计算机教学内容体系,大学计算机教学内容体系建设与改革论文
- 约瑟夫环算法(JAVA)
热门文章
- 就业形势如此的严峻,你为何不努力?
- 2019蓝桥杯省赛---java---B---1(组队)
- 异步任务---SpringBoot
- C++字符串分割替换 ubuntu版本
- java中public private_java中public、private、protected区别
- 萤石云好友分享的监控怎么看_萤石S1:英超赛场上雄起的中国品牌
- 独家:这也许是最具珍藏价值的Oracle DBA生存宝典!
- java的几种对象(PO,VO,DAO,BO,POJO)解释
- spring安全性_具有PreAuthorize的Spring方法安全性
- ibm liberty_使用Eclipse和Open Liberty的Java EE 8上的Java 9