最近做的项目有这样一个需求:要求对map中的值进行排序并生成序号。如果值相等则序号不变;如果不相等序号为该数数值在所有元素中的索引。如下表所示:

Key(String) Value(Float) Idx
23 12.4 1
10 3.2 2
11 2.2 3
9 2.2 3
1 1.9 5
6 0.5 6

public static Integer getSort(Map<String, Float> hashMap, String string) {
// 转换
ArrayList<Entry<String, Float>> arrayList = new ArrayList<Map.Entry<String, Float>>(
hashMap.entrySet());
// 排序
Collections.sort(arrayList, new Comparator<Map.Entry<String, Float>>() {
public int compare(Map.Entry<String, Float> map1,
Map.Entry<String, Float> map2) {
return ((map2.getValue() - map1.getValue() == 0) ? 0 : (map2
.getValue()
- map1.getValue() > 0) ? 1 : -1);
}
});
Map<String, Integer> idxex = new HashMap<String, Integer>();
// 输出
int size = 1;
for (int i = 0; i < arrayList.size(); i++) {
Entry<String, Float> entry = arrayList.get(i);
if (i > 0) {
float curr = arrayList.get(i).getValue();
float last = arrayList.get(i - 1).getValue();
if (curr != last) {
size = i;
idxex.put(entry.getKey(), (i + 1));
size++;
} else {
idxex.put(entry.getKey(), size);
}
} else {
idxex.put(entry.getKey(), size);
}
} for (Map.Entry<String, Integer> entry : idxex.entrySet()) {
String key = entry.getKey();
if (string.equals(key)) {
return entry.getValue();
}
}
return 0;
}

最新文章

  1. 如何有效使用Project(1)——编制进度计划、保存基准
  2. 安装xampp无法设置默认时间的坑
  3. XML文件解析DOM解析和SAX解析
  4. java初探native
  5. 去除TFS版本控制信息
  6. uva 10014 Simple calculations
  7. zabbix 模版其实就是主机
  8. Eclipse验证码
  9. iOS开发之控制器创建与加载(生命周期)
  10. DDOS的攻击原理和如何防护网站和游戏恶意攻击
  11. 教你如何在Android 6.0上创建系统悬浮窗
  12. redis 系列6 数据结构之字典(下)
  13. SSH 安全加固
  14. No bean named &#39;dataSource&#39; is defined
  15. 【转载】ASP.NET MVC设置允许跨域访问
  16. mysql5.7 datetime 默认值为‘0000-00-00 00:00:00&#39;值无法创建问题解决
  17. c# 7.1 Async Main方法
  18. 雷林鹏分享:C# 方法
  19. 给rm命令设置别名防止误操作
  20. BeautifulSoup中查找元素 select() 和find()区别

热门文章

  1. Struts2 取消 下载时异常
  2. 170403、java 版cookie操作工具类
  3. 深入HQL学习以及HQL和SQL的区别
  4. Python全栈day13(作业讲解字典嵌套实现用户输入地址信息添加及查看)
  5. 关于微信小程序的场景值
  6. Bootstrap学习记录
  7. http 服务器编程 适配器
  8. Tilera--100核cpu
  9. Apache mahout 源码阅读笔记--DataModel之FileDataModel
  10. yarn的使用