我有這樣的輸入。獲取值的索引
0 Overcast Yes 4
0 Rainy Yes 3
0 Sunny No 3
1 Cool No 1
1 Cool Yes 3
我想這些數據存儲在一個HashMap
{0=[Overcast Yes 4,Rainy Yes 3,Sunny No 3]}
{1=[Cool No 1,Cool Yes 3]}
到目前爲止,我所做的是
Map<String, List<String>> mapPart = new HashMap<String, List<String>>();
List<String> tmpList = new ArrayList<String>();
while((partLine = bfpart.readLine())!=null){
String restOfString="";
String[] first = partLine.split(" ");
String firstPart = first[0];
for (int i=1; i<first.length; i++)
{
restOfString += first[i];
restOfString += " ";
}
if(mapPart.isEmpty()){
tmpList.add(restOfString);
mapPart.put(firstPart, tmpList);
}
else{
for (Map.Entry<String, List<String>> entry : mapPart.entrySet()) {
String colId = entry.getKey();
if(colId.equals(firstPart)){
List<String> lst = mapPart.get(colId);
lst.add(restOfString);
mapPart.put(colId,lst);
}
else{ //should we craete a new list
}
}
}
電流輸出
map: {0=[Overcast Yes 4 , Rainy No 2 , Sunny No 3 ]}
我想計算這個等式。
Info(n)=([no.of yes for overcast,no.of No for overcast],[no.of yes for Rainy,no.of no for Rainy],[no.of yes for Sunny,no.of no for Sunny])
Info0([4,0],[3,0],[0,3])/log2
Info1([3,1])/log2
- 是上面的一個很好的方式與這個公式
- 或讀取文件本身的公式可以做還是不做?
什麼是你想實現什麼?替換現有的值或東西? – mvreijn
你一定要檢查一下'Map'代表什麼以及它對你有什麼好處 - 我認爲你把地圖誤認爲一個列表。 – Smutje
@mvreijn:我試圖將輸出結果作爲「{0 = [陰雨是4,雨水是3,陽光3號],1 = [冷卻否1,冷水是3]}」 –