大數據計算文件與Java計算文件的區別【重點!!!】
package com.njbdqn;
import java.io.BufferedReader;
import java.io.FileReader;
import java.util.HashMap;
import java.util.Map;
/*
*在Java裏面就是用開多線程的方式:cpu的速度快,正常狀況下,
* 就能夠在很短的時間內執行多個文件夾
* 給人感受是同時執行多個文件,同時執行(時間片輪轉的方式)
* 只要速度足夠快,就能夠定義爲並行執行文件(併發運行)搶時間片。
* cpu的速度是有限度的,要適當執行。
*
*
* 在大數據裏面就是分配多個機器,把數據分割成不少份,而後分配到墮胎計算機上面
* 進程出入的方式
*
* */
// I/O流讀寫
public class MyDemo {
public static void main(String[] args) throws Exception{//拋出異常
//線性結構兩個(1.數組(ArrayList) 2.列表)
//Set<>底下也是Map<>
Map<String,Integer> word = new HashMap<String, Integer>();
BufferedReader br = new BufferedReader(new FileReader("d:/abc.txt"));
String line = br.readLine();
while (line!=null){
//System.out.println(line);
String [] wds = line.split("");
//加強型for循環
for (String wd:wds){
//分爲兩種狀況 1.存在
if (word.containsKey(wd)){
word.put(wd,word.get(wd)+1);
} else {
//2.不存在
word.put(wd,1);
}
}
line = br.readLine();
}
//拋出異常
br.close();
//入(那麼大)表達式
//哈希Map是鍵值隊,兩個值。一個值就不須要括號了,就一個值就好了。
word.forEach((k,v)->{
System.out.println(k+":"+v);
});
/*
* 表 wds
* word列
*
* hello
* cm
* hello
* woeld
* select word,count(*) from wds group by word
*/
}
}