/**
* 给定一个人物分数表,求排序为
* map.put("小明",2);
* map.put("小红",5);
* map.put("小军",1);
* map.put("小林",4);
* map.put("小狗",2);
* @param userScore
* @return
*/
public Map<String,Integer> getSort(Map<String,Integer> userScore){
//将分数放到一个数组中,方便排序
int[] nums = new int[userScore.size()];
Set<Map.Entry<String, Integer>> entries = userScore.entrySet();
Iterator<Map.Entry<String, Integer>> it = entries.iterator();
int index = 0;
while(it.hasNext()){
Map.Entry<String, Integer> entry = it.next();
nums[index] = entry.getValue();
index++;
}
//排序
for (int i = 0; i <nums.length -1; i++) {
for (int j = 0; j < nums.length -1; j++) {
if (nums[j] < nums[j+1]){
int temp = nums[j];
nums[j] = nums[j+1];
nums[j+1] = temp;
}
}
}
//排序后的数组,进行值对比
Set<String> set = userScore.keySet();
Iterator<String> iterator = set.iterator();
while (iterator.hasNext()){
String key = iterator.next();
for (int i = 0; i < nums.length ; i++) {
if (userScore.get(key) == nums[i]){
userScore.replace(key,i+1);
}
}
}
return userScore;
}