lambda主要是對流的掌握,當然可以連著寫很多,但是不太容易閲讀

public static void main(String[] args) throws IOException {
Path dictionary = Paths.get(args[0]);
int minGroupSize = Integer.parseInt(args[1]);
try (Stream<String> words = Files.lines(dictionary)) {
words.collect(groupingBy(word -> alphabetize(word)))
.values().stream()
.filter(group -> group.size() >= minGroupSize)
.forEach(group -> System.out.println(group.size() + " : " + group));
}
}

另请注意,单词字母化是在单独的 alphabetize 方法中完成的。 这通过提供操作名称并将实现细节保留在主 程序之外来增强可读性。 使用辅助方法对于流管道中的可读性比在迭代代码中更为重要,因为管道缺少显式类型信 息和命名临时变量。

這裏還有個小細節就是用try()去做IO操作

        "hello".chars().forEach(System.out::println);
"hello".chars().forEach(x -> System.out.println((char)x));

chars()返回的是int而不是char,就像你用charAt(index)一個樣。所以輸出的都是int,我們需要轉類型一下,當然,一般是不會處理char的,因爲很不方便。

流處理的話,對於非平行的處理就麻煩些。

個人感覺第二種清爽,第一種清晰。

 

最新文章

  1. HTML5播放暂停音乐
  2. Android编码规范03
  3. java学习第18天(map集合)
  4. 学习使用 jQuery &amp; CSS3 制作照片堆栈效果
  5. ci连贯操作的limit两个参数和sql是相反的
  6. spring应用于web项目中
  7. ajax返回值中有回车换行、空格解决方法
  8. PowerDesigner数据库建模工具一缆
  9. Linux设备驱动01
  10. CentOS(RHEL) 操作备忘
  11. iss 防火墙
  12. Android Studio中JNI -- 1 -- 配置方法
  13. Linux下*.tar.gz文件解压缩命令 find 命令
  14. python虚拟环境介绍与安装
  15. iOS开发-添加圆角效果高效实现
  16. Java后端学习,推荐书籍和学习路线
  17. 关于如何使用ehcarts2加载svg矢量地图并自定义县级内部乡镇轮廓
  18. python-day18 JS正则,组件BootStrap、EasyUI、JQueryUI1,插件轮播,django
  19. Django认证系统
  20. facebook api之Ad

热门文章

  1. Spring注解之@Autowired
  2. Spring Cloud @RefreshScope刷新问题
  3. redis的介绍与操作及Django中使用redis缓存
  4. R的获取和安装
  5. springboot~yml里的自定义配置~续
  6. 6.Ansible Roles角色实战
  7. CSS入门(css简介与样式汇总、CSS的使用方式和特征、CSS基础选择器和复杂选择器、边框阴影)
  8. Docker 常用操作命令
  9. MATLAB实例:散点密度图
  10. Drawable.SetDither(Boolean) Method