我想獲取作業列表(稱爲resultStream)並計算完全完成的作業百分比。如何計算基於Java 8 Stream過濾器輸出的百分比
public class Job {
private Date date;
private String success;
// Getter and setter and constructor.
}
列表包含以下內容:
new Job("TODAY", "YES");
new Job("TODAY", "YES");
new Job("YESTERDAY", "YES");
new Job("TODAY", "NO");
這裏是我的代碼至今:
resultStream.stream().parallel().filter(result -> {
if ("YES".contains(result.getSuccess())) {
return true;
} else {
return false;
}
}).collect(groupingBy(Job::getDate, HashMap::new, counting()));
這將返回我一個HashMap(日期,龍)具有以下內容:
今天,2
昨天1
其實我是想了以下結果:
今天,66%
YESTERDAY,100%
在此先感謝。
BTW您的過濾器實際上應該說'結果 - > 「YES」。載有(result.getSuccess() )' –