lambda的一個小用法
2024-09-05 04:23:13
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的,因爲很不方便。
流處理的話,對於非平行的處理就麻煩些。
個人感覺第二種清爽,第一種清晰。
最新文章
- HTML5播放暂停音乐
- Android编码规范03
- java学习第18天(map集合)
- 学习使用 jQuery &; CSS3 制作照片堆栈效果
- ci连贯操作的limit两个参数和sql是相反的
- spring应用于web项目中
- ajax返回值中有回车换行、空格解决方法
- PowerDesigner数据库建模工具一缆
- Linux设备驱动01
- CentOS(RHEL) 操作备忘
- iss 防火墙
- Android Studio中JNI -- 1 -- 配置方法
- Linux下*.tar.gz文件解压缩命令 find 命令
- python虚拟环境介绍与安装
- iOS开发-添加圆角效果高效实现
- Java后端学习,推荐书籍和学习路线
- 关于如何使用ehcarts2加载svg矢量地图并自定义县级内部乡镇轮廓
- python-day18 JS正则,组件BootStrap、EasyUI、JQueryUI1,插件轮播,django
- Django认证系统
- facebook api之Ad