如果您了解这一行,或者更好的是仍然可以编写此代码,则可以说您已经了解了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相关推荐

  1. 在JDT中使用Java 8 Lambda

    旧 Curmudgeon 认识Smalltalk的Dude 在修改Eclipse Java开发工具 (JDT)项目正在开发的Java 8支持时,我一直在使用这种语言. 我承认我对Java 8中的lam ...

  2. java jdt_在JDT中使用Java 8 Lambda

    java jdt 旧 Curmudgeon 认识Smalltalk的Dude 在修改Eclipse Java开发工具 (JDT)项目正在开发的Java 8支持时,我一直在使用这种语言. 我承认我对Ja ...

  3. lambda表达式_在Java 7或更早版本中使用Java 8 Lambda表达式

    lambda表达式 我认为没有人会拒绝Java 8引入的Lambda表达式的有用性.但是,许多项目都停留在Java 7甚至旧版本上. 升级可能既耗时又昂贵. 如果第三方组件与Java 8不兼容,则可能 ...

  4. 在Java 7或更早版本中使用Java 8 Lambda表达式

    我认为没有人会拒绝Java 8引入的Lambda表达式的有用性.但是,许多项目都停留在Java 7甚至旧版本上. 升级可能既耗时又昂贵. 如果第三方组件与Java 8不兼容,则可能根本无法升级. 除此 ...

  5. java在输入的同一行中输出,JAVA输入输出总结

    标准输入: Scanner cin = new Scanner(System.in); cin.nextLine();:输入一行,可能存在空格,功能特点类似于C中的gets(): cin.next() ...

  6. java 8 lambda表达式中的异常处理

    文章目录 简介 处理Unchecked Exception 处理checked Exception 总结 java 8 lambda表达式中的异常处理 简介 java 8中引入了lambda表达式,l ...

  7. java lambda::_书评:精通Lambda:多核世界中的Java编程

    java lambda:: 从版本8开始,λ编程(lambda编程)终于在Java世界中引入.此功能将在很大程度上改变Java开发人员的编程方式以及针对样板代码的新"武器". Ja ...

  8. 书评:精通Lambda:多核世界中的Java编程

    从版本8开始,λ编程(lambda编程)终于在Java世界中引入.此功能将在很大程度上改变Java开发人员的编程方式以及针对样板代码的新"武器". Java 8通过引入新的Stre ...

  9. JAVA 8 lambda 表达式实现按某个属性值查找对象集合中符合条件的对象

    转载自:https://www.cnblogs.com/lindsayYang/p/9843599.html JAVA 8 lambda 表达式实现按某个属性值查找对象集合中符合条件的对象 当前的需求 ...

最新文章

  1. 程序员的身体一定要好
  2. 【百家稷学】卷积神经网络的前世、今生与未来(武汉工程大学技术分享)
  3. php中命名空间重要吗,关于php:PHP中命名空间是怎样的存在一
  4. .Net Cancellable Task - APM异步超时机制扩展
  5. Vue.js的计算属性
  6. 【C语言及程序设计】项目2-15:模块化的简单银行系统设计
  7. LeetCode 1602. 找到二叉树中最近的右侧节点(BFS)
  8. opensips mysql 认证_基于ubuntu中使用mysql实现opensips用户认证的解决方法
  9. 快速排序的递归方式和非递归方式
  10. 内存单元地址求字节大小的计算方法
  11. Ubuntu 20.04(Linux Mint XFCE 20)安装LBP2900打印机
  12. Android仓库管理系统
  13. 《朗读者》读后感作文3100字
  14. 【六祎 - HTML模板】提交按钮模板-带特效
  15. 排列显示阿拉伯语、数字及英文时的处理方法
  16. 单反相机风景摄影易记易学口诀
  17. STM32 SPI片选信号拉不高的解决方案
  18. 地图与定位(五)高德地图服务一
  19. 大学计算机教学内容体系,大学计算机教学内容体系建设与改革论文
  20. 约瑟夫环算法(JAVA)

热门文章

  1. 就业形势如此的严峻,你为何不努力?
  2. 2019蓝桥杯省赛---java---B---1(组队)
  3. 异步任务---SpringBoot
  4. C++字符串分割替换 ubuntu版本
  5. java中public private_java中public、private、protected区别
  6. 萤石云好友分享的监控怎么看_萤石S1:英超赛场上雄起的中国品牌
  7. 独家:这也许是最具珍藏价值的Oracle DBA生存宝典!
  8. java的几种对象(PO,VO,DAO,BO,POJO)解释
  9. spring安全性_具有PreAuthorize的Spring方法安全性
  10. ibm liberty_使用Eclipse和Open Liberty的Java EE 8上的Java 9