我有一个列表,我希望获得百分位数。
HashMap<Integer,String> test=new HashMap<Integer,String>();
test.put(100,"Amit");
test.put(101,"Vijay");
test.put(102,"Rahul");
test.put(103,"Amit");
test.put(104,"Vijay");
test.put(105,"Rahul");
使用以下公式进行百分位数,如何正确迭代和使用? 我想获得哈希映射中每个键的百分位数
Number of scores blow X*100/N
答案 0 :(得分:0)
所以我对HashMaps做了很多工作,但是看JavaDoc它应该像
Hashmap<Integer><String> h;
int sum = 0;
for(int i: h.keySet()) {
sum += i;
}
double percentile = sum/h.size()
答案 1 :(得分:0)
你可以做这样的事情(假设百分位你的意思是相对于每个人得分的最高得分,如果你想要分配那么你可能想要使用不同的计算,但这应该给你一个想法)
int maxScore = 0;
for ( Integer score : test.keySet()) {
if (score > maxScore) {
maxScore = score;
}
}
for ( Integer score : test.keySet()) {
System.out.print(String.format("%s's percentile %5.2f\n", test.get(score),
((double)score/(double)maxScore)*100));
}
使用您拥有的数据,您应该获得以下内容
Rahul's percentile 97.14
Amit's percentile 98.10
Amit's percentile 95.24
Vijay's percentile 96.19
Vijay's percentile 99.05
Rahul's percentile 100.00