zoukankan      html  css  js  c++  java
  • lambda的一個小用法

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

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

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

     
    一个没有高级趣味的人。 email:hushui502@gmail.com
  • 相关阅读:
    bzoj2888: 资源运输
    [ SDOI 2009 ] HH的项链 & [ HEOI 2012 ] 采花
    [ POI 2017 ] Podzielno
    [ HAOI 2011 ] Problem A
    [ SDOI 2011 ] 打地鼠
    [ SCOI 2007 ] Perm
    [ POI 2011 ] Dynamite
    [ BZOJ 3038 & 3211 / SPOJ GSS4 ] 上帝造题七分钟2 / 花神游历各国
    [ BZOJ 3445 ] Roadblock
    [ ZJOI 2006 ] Mahjong
  • 原文地址:https://www.cnblogs.com/CherryTab/p/11892536.html
Copyright © 2011-2022 走看看