摘要:的入門程序,也能實(shí)現(xiàn)統(tǒng)計單詞數(shù)量程序特殊文件需要格式轉(zhuǎn)換為將多個流融合為一個統(tǒng)計單詞數(shù)量程序通過自定義統(tǒng)計,其實(shí)也使用的是記住凡是
hadoop的入門程序,java8也能實(shí)現(xiàn)
txt統(tǒng)計單詞數(shù)量程序
@Test public void fileWordCount() throws IOException { //特殊文件需要格式轉(zhuǎn)換為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統(tǒng)計單詞數(shù)量程序
@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統(tǒng)計,其實(shí)counting()也使用的是reduce //記?。悍彩窃谥虚g操作使用了map,接口定義都需要聲明出來,直接使用lambda表達(dá)式會有1.無法讀取method,2.類型檢查不到 的問題 BinaryOperator binaryOperator2 = Integer::sum; //排序的轉(zhuǎn)換規(guī)則接口 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); }
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/68143.html
摘要:中使用那一套,線程的速度,你知道的而對于分布式數(shù)據(jù)流來說,本來就是并行的,這種參數(shù)意義就不大了。函數(shù)種類一般作用在數(shù)據(jù)流上的函數(shù),會分為兩類。中的程序是實(shí)現(xiàn)在數(shù)據(jù)流上的。可以看作是的更新日志,數(shù)據(jù)流中的每一個記錄對應(yīng)數(shù)據(jù)庫中的每一次更新。最近入職一個有趣的年輕同事,提交了大量大量的代碼。翻開git記錄一看,原來是用了非常多的java8的語法特性,重構(gòu)了代碼。用的最多的,就是map、flatM...
摘要:中使用那一套,線程的速度,你知道的而對于分布式數(shù)據(jù)流來說,本來就是并行的,這種參數(shù)意義就不大了。函數(shù)種類一般作用在數(shù)據(jù)流上的函數(shù),會分為兩類。中的程序是實(shí)現(xiàn)在數(shù)據(jù)流上的??梢钥醋魇堑母氯罩?,數(shù)據(jù)流中的每一個記錄對應(yīng)數(shù)據(jù)庫中的每一次更新。最近入職一個有趣的年輕同事,提交了大量大量的代碼。翻開git記錄一看,原來是用了非常多的java8的語法特性,重構(gòu)了代碼。用的最多的,就是map、flatM...
摘要:中使用那一套,線程的速度,你知道的而對于分布式數(shù)據(jù)流來說,本來就是并行的,這種參數(shù)意義就不大了。函數(shù)種類一般作用在數(shù)據(jù)流上的函數(shù),會分為兩類。中的程序是實(shí)現(xiàn)在數(shù)據(jù)流上的。可以看作是的更新日志,數(shù)據(jù)流中的每一個記錄對應(yīng)數(shù)據(jù)庫中的每一次更新。最近入職一個有趣的年輕同事,提交了大量大量的代碼。翻開git記錄一看,原來是用了非常多的java8的語法特性,重構(gòu)了代碼。用的最多的,就是map、flatM...
摘要:中的與表達(dá)式可以說是相伴相生的,通過我們可以更好的更為流暢更為語義化的操作集合。流是一種惰性操作,所有對源數(shù)據(jù)的計算只在終止操作被初始化的時候才會執(zhí)行。然后傳入表達(dá)式將每個元素轉(zhuǎn)換大寫,通過方法將結(jié)果收集到中。 上一篇系統(tǒng)學(xué)了方法引用的幾種類型及應(yīng)用場景,本篇開始我們正式學(xué)習(xí)Stream。Java8中的Stream與lambda表達(dá)式可以說是相伴相生的,通過Stream我們可以更好的更...
閱讀 2766·2021-11-16 11:45
閱讀 1673·2021-09-26 10:19
閱讀 2065·2021-09-13 10:28
閱讀 2824·2021-09-08 10:46
閱讀 1551·2021-09-07 10:13
閱讀 1547·2019-08-30 13:50
閱讀 1387·2019-08-30 11:17
閱讀 1466·2019-08-29 13:18