摘要:的入门程序,也能实现统计单词数量程序特殊文件需要格式转换为将多个流融合为一个统计单词数量程序通过自定义统计,其实也使用的是记住凡是
hadoop的入门程序,java8也能实现
txt统计单词数量程序
@Test public void fileWordCount() throws IOException { //特殊文件需要格式转换为txt Files.readAllLines(Paths.get("D:jd.txt"), StandardCharsets.UTF_8).parallelStream() //将多个流融合为一个 .flatMap(line -> Arrays.stream(line.trim().split("s"))) .filter(word -> word.length() > 0) .map(word -> new AbstractMap.SimpleEntry<>(word, 1)) .collect(groupingBy(AbstractMap.SimpleEntry :: getKey, counting())) .entrySet().forEach(System.out :: println); }
List统计单词数量程序
@Test public void listWordCount(){ ListstringList = Arrays.asList("a","b","c","a"); stringList.stream() .map(s -> new AbstractMap.SimpleEntry<>(s, 1)) .collect(groupingBy(AbstractMap.SimpleEntry :: getKey, counting())) .entrySet().stream() .forEach(System.out :: println); System.out.println("---------------------------------------------------"); //通过自定义reduce统计,其实counting()也使用的是reduce //记住:凡是在中间操作使用了map,接口定义都需要声明出来,直接使用lambda表达式会有1.无法读取method,2.类型检查不到 的问题 BinaryOperator binaryOperator2 = Integer::sum; //排序的转换规则接口 ToIntFunction sortMapFunction = (Map.Entry se) -> Integer.valueOf(se.getValue().toString()).intValue(); stringList .stream() .map(s -> new AbstractMap.SimpleEntry<>(s, 1)) .collect(groupingBy(AbstractMap.SimpleEntry::getKey, reducing(0, AbstractMap.SimpleEntry::getValue,binaryOperator2))) .entrySet() .stream() .sorted(Comparator.comparingInt(sortMapFunction)) .forEach(System.out::println); }
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/68143.html
摘要:中使用那一套,线程的速度,你知道的而对于分布式数据流来说,本来就是并行的,这种参数意义就不大了。函数种类一般作用在数据流上的函数,会分为两类。中的程序是实现在数据流上的。可以看作是的更新日志,数据流中的每一个记录对应数据库中的每一次更新。最近入职一个有趣的年轻同事,提交了大量大量的代码。翻开git记录一看,原来是用了非常多的java8的语法特性,重构了代码。用的最多的,就是map、flatM...
摘要:中使用那一套,线程的速度,你知道的而对于分布式数据流来说,本来就是并行的,这种参数意义就不大了。函数种类一般作用在数据流上的函数,会分为两类。中的程序是实现在数据流上的。可以看作是的更新日志,数据流中的每一个记录对应数据库中的每一次更新。最近入职一个有趣的年轻同事,提交了大量大量的代码。翻开git记录一看,原来是用了非常多的java8的语法特性,重构了代码。用的最多的,就是map、flatM...
摘要:中使用那一套,线程的速度,你知道的而对于分布式数据流来说,本来就是并行的,这种参数意义就不大了。函数种类一般作用在数据流上的函数,会分为两类。中的程序是实现在数据流上的。可以看作是的更新日志,数据流中的每一个记录对应数据库中的每一次更新。最近入职一个有趣的年轻同事,提交了大量大量的代码。翻开git记录一看,原来是用了非常多的java8的语法特性,重构了代码。用的最多的,就是map、flatM...
摘要:中的与表达式可以说是相伴相生的,通过我们可以更好的更为流畅更为语义化的操作集合。流是一种惰性操作,所有对源数据的计算只在终止操作被初始化的时候才会执行。然后传入表达式将每个元素转换大写,通过方法将结果收集到中。 上一篇系统学了方法引用的几种类型及应用场景,本篇开始我们正式学习Stream。Java8中的Stream与lambda表达式可以说是相伴相生的,通过Stream我们可以更好的更...
阅读 2746·2021-11-16 11:45
阅读 1653·2021-09-26 10:19
阅读 2050·2021-09-13 10:28
阅读 2802·2021-09-08 10:46
阅读 1528·2021-09-07 10:13
阅读 1524·2019-08-30 13:50
阅读 1373·2019-08-30 11:17
阅读 1454·2019-08-29 13:18