java8中的新特性lambda表达式

已有 3383人阅读此文 - - JAVA

    Lambda表达式是java8中新增的特性,如果使用过.net framework4.0+的朋友应该很熟悉lambda表达式,lambda表达式可以使代码更加的简洁,或许初次使用你并不能习惯这种匿名的方式来调用,但这确实是一个很好的实践。

    Lambda表达式的详细定义,有兴趣可以查看百度百科,下面展示一段读取文件内容的代码,如果你能看懂这段代码,那么说明你已经可以了解JAVA8中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
 */
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])));
    }
}


来源:自成e家 出处:java8中的新特性lambda表达式
本文由 自成e家 翻译 ,转载请注明出处,你的支持是我继续写作、分享的最大动力!
期待你一针见血的评论,Come on!