如何在java中获得百分位数

时间:2016-01-07 09:53:26

标签: java hashmap percentile

我有一个列表,我希望获得百分位数。

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

2 个答案:

答案 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