亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

利用Fork/Join框架來統計某個字符串在某個文件夾的文件中出現的次數

2019-11-11 04:41:02
字體:
來源:轉載
供稿:網友
需求:利用Fork/Join框架來統計某個字符串在某個文件夾的文件中出現的次數。主要用到的技術點:JDK8的Stream、Lambda表達式、Fork/Join框架.

如果對于Fork/Join不了解的話可以參考這里:http://www.infoq.com/cn/articles/fork-join-introduction、http://ifeve.com/fork-join-1/、http://www.iteye.com/topic/643724 。主要代碼如下:

package com.zkn.fullstacktraining.seventh;import com.google.common.collect.Lists;import javafx.util.Pair;import java.io.IOException;import java.nio.file.Files;import java.nio.file.Path;import java.nio.file.Paths;import java.util.List;import java.util.Optional;import java.util.concurrent.ExecutionException;import java.util.concurrent.ForkJoinPool;import java.util.concurrent.Future;import java.util.concurrent.RecursiveTask;import java.util.stream.Collectors;import java.util.stream.IntStream;/** * Created by wb-zhangkenan on 2017/2/6. * 通過Fork/Join的方式來統計某個字符串在某個文件夾下的文件中出現的次數 */public class SearchStringByForkJoin extends RecursiveTask<List<Pair<String, Integer>>> { //任務的閥值 PRivate static final int THRESHOLD = 5; //任務區間的開始值 private int start; //任務區間的結束值 private int end; //所有的路徑信息 private List<Path> allPaths; public SearchStringByForkJoin(int start, int end, List<Path> allPaths) { this.start = start; this.end = end; this.allPaths = allPaths; } public static void main(String[] args) { ForkJoinPool forkJoinPool = new ForkJoinPool(); try { List<Path> pathList = Files.walk(Paths.get("D://CUST//WORK//Exercises//FullStackTraining//src//main//java//com//zkn"), 4) .filter(file -> !Files.isDirectory(file) && file.toString().endsWith("java")) .collect(Collectors.toList()); SearchStringByForkJoin searchStringByForkJoin = new SearchStringByForkJoin(0, pathList.size(), pathList); Future<List<Pair<String, Integer>>> result = forkJoinPool.submit(searchStringByForkJoin); List<Pair<String, Integer>> pairList = result.get(); pairList.stream() .filter(pair -> pair.getValue() > 0) .sorted((s1, s2) -> Integer.compare(s2.getValue(), s1.getValue())) .forEach(pair -> System.out.println(String.format("%d次出現在%s文件中", pair.getValue(), pair.getKey().toString()))); forkJoinPool.shutdown(); } catch (IOException e) { e.printStackTrace(); } catch (InterruptedException e) { e.printStackTrace(); } catch (ExecutionException e) { e.printStackTrace(); } } /** * The main computation performed by this task. * @return the result of the computation */ @Override protected List<Pair<String, Integer>> compute() { List<Pair<String, Integer>> pairList = Lists.newArrayList(); boolean canCompute = end - start <= THRESHOLD; if (canCompute) { pairList = IntStream.range(start, end + 1).mapToObj(i -> { //到集合的結尾了 if (i == allPaths.size()) return new Pair<>("", 0); int sum = 0; try { Optional optional = Files.lines(allPaths.get(i)).map(file -> { int count = 0; int flag = file.indexOf("main"); if (flag >= 0) { do { count++; } while ((flag = file.indexOf("main", flag + 1)) > 0); } return count; }).reduce(Integer::sum); sum = optional.isPresent() ? (int) optional.get() : 0; } catch (IOException e) { e.printStackTrace(); } return new Pair<>(allPaths.get(i).toString(), sum); }).collect(Collectors.toList()); } else { //取中間值 int middle = (end + start) / 2; //創建Fork子任務 SearchStringByForkJoin leftFork = new SearchStringByForkJoin(start, middle, allPaths); //創建Fork子任務 SearchStringByForkJoin rightFork = new SearchStringByForkJoin(middle + 1, end, allPaths); //執行子任務 leftFork.fork(); rightFork.fork(); //合并子任務的結果集 pairList.addAll(leftFork.join()); pairList.addAll(rightFork.join()); } return pairList; }}
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
一区二区中文字幕| 国产成人综合精品在线| 日日狠狠久久偷偷四色综合免费| 亚洲xxx自由成熟| 国产精品成人久久久久| 国产精品视频一区国模私拍| 日本精品久久中文字幕佐佐木| 成人网址在线观看| 久久久精品国产网站| 91午夜在线播放| 国产精品久久久久久久久免费| 91麻豆国产精品| 97精品国产97久久久久久春色| 久久影视三级福利片| 亚洲精品视频在线播放| xxxxx91麻豆| 国产精品国产亚洲伊人久久| 亚洲国产欧美自拍| 欧美视频免费在线| 亚洲伊人久久综合| 久久精品99无色码中文字幕| 国产精品揄拍500视频| 91中文在线观看| 日本欧美爱爱爱| 97涩涩爰在线观看亚洲| 亚洲最大福利视频网站| 欧美大片大片在线播放| 久久精品夜夜夜夜夜久久| 原创国产精品91| 久久精品青青大伊人av| 亚洲人午夜精品免费| 亚洲欧美日韩久久久久久| 亚洲精品福利视频| 97精品伊人久久久大香线蕉| 日韩电影大全免费观看2023年上| 在线观看精品自拍私拍| 国产日韩在线免费| 91福利视频网| 亚洲午夜av久久乱码| 性亚洲最疯狂xxxx高清| 在线观看日韩欧美| 亚洲高清福利视频| 久久久久久久久爱| 中文字幕无线精品亚洲乱码一区| 国产精品电影在线观看| 亚洲91精品在线观看| 国产精品网址在线| 欧美做受高潮电影o| 亚洲国产中文字幕久久网| 亚洲性夜色噜噜噜7777| 久久久国产在线视频| 亚洲跨种族黑人xxx| 国产成人精品电影| 都市激情亚洲色图| 深夜精品寂寞黄网站在线观看| 亚洲黄页视频免费观看| 亚洲欧美日韩中文在线| 国产99视频在线观看| 亚洲iv一区二区三区| 国产伦精品一区二区三区精品视频| 日韩欧美在线国产| 欧美日韩性视频| 日韩在线视频观看| 国产视频自拍一区| 4p变态网欧美系列| 国产精品免费一区| www.日韩.com| 亚洲高清在线观看| 日韩av有码在线| 一个人www欧美| 亚洲小视频在线| 另类美女黄大片| 日韩激情av在线免费观看| 92福利视频午夜1000合集在线观看| 欧美成年人视频网站| 欧美日韩中文字幕在线视频| 国产亚洲精品日韩| 92看片淫黄大片看国产片| 欧美视频裸体精品| 成人免费视频网址| 亚洲天堂一区二区三区| 亚洲欧美变态国产另类| 国产精品视频网址| 久久亚洲国产精品| 成人av色在线观看| 最近2019中文字幕第三页视频| 成人午夜高潮视频| 69久久夜色精品国产69| 亚洲福利在线视频| 亚洲激情 国产| 国产精品高清在线| 亚洲黄在线观看| 成人高清视频观看www| 97激碰免费视频| 亚洲精品电影在线观看| 亚洲自拍另类欧美丝袜| 国产精品美女在线观看| 日韩国产一区三区| 欧美性videos高清精品| 4p变态网欧美系列| 福利一区福利二区微拍刺激| 久久久久国产精品免费网站| 性欧美视频videos6一9| 日韩中文有码在线视频| 精品国产一区二区在线| 国产精品美女主播在线观看纯欲| 国产精品入口免费视| 久操成人在线视频| 国产精品av在线| 国产v综合v亚洲欧美久久| 97在线观看免费| 日本欧美一级片| 久久人人爽人人爽人人片亚洲| 日韩高清电影免费观看完整版| 欧美在线日韩在线| 亚洲最大福利视频网站| 亚洲国语精品自产拍在线观看| 国产欧美日韩中文字幕在线| 色婷婷亚洲mv天堂mv在影片| 欧美日韩日本国产| 欧美性xxxx极品hd满灌| 色偷偷av一区二区三区| 91久久在线播放| 精品呦交小u女在线| 国产日韩av高清| 日韩二区三区在线| 欧美最猛性xxxxx亚洲精品| 亚洲精品国产精品自产a区红杏吧| 日韩精品视频在线免费观看| 国产日韩精品综合网站| 亚洲高清久久久久久| 亚洲人成毛片在线播放| 伊人伊成久久人综合网小说| 高清欧美性猛交xxxx| 久久综合九色九九| 亚洲人线精品午夜| 国产精品视频永久免费播放| 国产成人一区二区三区小说| 国产亚洲精品va在线观看| 国产精品视频在线观看| 亚洲国产精久久久久久久| 亚洲美女精品成人在线视频| 亚洲一区二区中文| 欧美精品一二区| 色噜噜亚洲精品中文字幕| 综合网日日天干夜夜久久| 欧美美女操人视频| 国产精品久久99久久| 热99在线视频| 欧美激情第一页xxx| 97视频在线观看成人| 91丝袜美腿美女视频网站| 8x海外华人永久免费日韩内陆视频| 69久久夜色精品国产69乱青草| 爱福利视频一区| 日韩精品中文字幕有码专区| 欧美国产亚洲视频| 奇米影视亚洲狠狠色| 91免费高清视频| 91国内揄拍国内精品对白| 日韩成人在线免费观看| 亚洲视频电影图片偷拍一区| 久久精品视频播放| 777777777亚洲妇女|