2016-01-07 5 views
-5

У меня есть список, где я хочу получить процентили.Как получить процентили в java

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

Я хочу получить процентиль каждого ключа в карте хэша –

ответ

0

Так я гаванью работал так много с HashMaps, но, глядя на JavaDoc это должно быть что-то вроде

Hashmap<Integer><String> h; 
int sum = 0; 
for(int i: h.keySet()) { 
    sum += i; 
} 
double percentile = sum/h.size() 
+0

i dont want key i awnt ot получить процентиль ключа ech –

+0

Если бы я получил это правильно, тогда ура просто ищет двойной perc = 1/h.size() ; EDIT: nvm, ill Изменить мой ответ – ShadowPenguin

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 
+0

, если мне нужно получить на основе ценности? –

 Смежные вопросы

  • Нет связанных вопросов^_^