Java8 stream

174 阅读1分钟

读取一个日志文件,根据空格分词,统计各个单词的出现次数。 来看一下 Java8的写法

@Test
  public void fp() throws IOException {
    Path path = Paths.get("C:\\xiaoniu_doc\\ideaProjects\\test\\src\\main\\java\\com\\xiaoniu\\utils\\DateUtils.java");
    
    Files.readAllLines(path)
      .parallelStream()
      .map(line -> line.split(" "))
      .flatMap(Arrays::stream)
      .collect(Collectors.groupingBy(String::toString))
      .forEach((k,v) -> System.out.println("word: " + k + ", count: " + v.size()));
  }

简直不要太爽,想象一下如果不是 Java8的写法该写多少代码