首页 > 其他 > 详细

lambda的一個小用法

时间:2019-11-19 22:55:40      阅读:95      评论:0      收藏:0      [点我收藏+]

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的,因爲很不方便。

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

技术分享图片

 

 

技术分享图片

 

 

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

 

lambda的一個小用法

原文:https://www.cnblogs.com/CherryTab/p/11892536.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!