java排序输出序号_Java对map进行排序并生成序号
最近做的项目有这样一个需求:要求对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 hashMap, String string) {
// 转换
ArrayList> arrayList = new ArrayList>(
hashMap.entrySet());
// 排序
Collections.sort(arrayList, new Comparator>() {
public int compare(Map.Entry map1,
Map.Entry map2) {
return ((map2.getValue() - map1.getValue() == 0) ? 0 : (map2
.getValue()
- map1.getValue() > 0) ? 1 : -1);
}
});
Map idxex = new HashMap();
// 输出
int size = 1;
for (int i = 0; i < arrayList.size(); i++) {
Entry 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 entry : idxex.entrySet()) {
String key = entry.getKey();
if (string.equals(key)) {
return entry.getValue();
}
}
return 0;
}
java排序输出序号_Java对map进行排序并生成序号相关推荐
- java map 自动排序_Java中Map的排序
Map的种类 在Java中,Map的主要作用是存储键值对.由于是根据键得到值,所以不允许键重复.它主要有如下几个类别: HashMap: 最常用的Map,它根据键的HashCode值存储数据,根据键可 ...
- 有关java的参考软件_Java的相关的排序实现(参考软件设计师教程)
package com.liuxt.sort; import java.io.BufferedReader; import java.io.IOException; import java.io.In ...
- java排序算法代码_Java实现八种排序算法(代码详细解释)
package八大排序算法;importjava.util.Arrays;importorg.junit.Test;/*** 1.插入排序 直接插入排序.希尔排序 折半插入排序 * 2.交换排序 冒泡 ...
- java 格式化输出 对齐_Java中中英文对齐输出问题,以及Java中的格式化输出
一 中英文对齐输出问题 问题,要求控制台输出如下: abcefg def 森林 阿狗 其实就是要求对齐输出,各种查找java的格式化输出,然后发现只要一个简单的"\t"就可以实现 ...
- java怎么输出字符串_java输出字符串,怎么样输出字符串?
下面要给大家讲的就是java输出字符串的问题,那么java怎样输出字符串呢?具体要怎样操作?一起来了解一下. 一般在java编程的过程当中,经常会使用System.out.println();来输出字 ...
- java运行 mavenzip包_JAVA开发必知工具-Maven-Maven生成可以直接运行的jar包的多种方式...
大家都知道一个java应用项目可以打包成一个jar,当然你必须指定一个拥有main函数的main class作为你这个jar包的程序入口. 具体的方法是修改jar包内目录META-INF下的MANIF ...
- java排序的例子_Java的8大排序的基本思想及实例解读
本文主要详解了Java语言的8大排序的基本思想以及实例解读,详细请看下文: 8种排序之间的关系: 1, 直接插入排序 (1)基本思想:在要排序的一组数中,假设前面(n-1)[n>=2] 个数已经 ...
- java 多条件比较_Java 多条件复杂排序小结
这里面最复杂的就是第3点,对秒杀活动进行排序,排序条件多,排序条件使用各不相同,在笔试中给我带来了很大的困扰,最后当然也是没做完啦···· 解决方案 吃完晚饭开始寻找解决方法,觉得应该会很有意思,果然 ...
- java程序输出矩阵_java编程题之顺时针打印矩阵
本文实例为大家分享了java顺时针打印矩阵的具体代码,供大家参考,具体内容如下 import java.util.ArrayList; /** * * 剑指offer编程题(JAVA实现)--第19题 ...
最新文章
- Java的类,对象以及字段和方法
- docker 修改镜像地址
- LeetCode:345. Reverse Vowels of a String
- 重温ES6核心概念和基本用法
- [HttpPost]和[AcceptVerbs(HttpVerbs.Post)]区别
- 完美支持蓝光高清 小米盒子复活版体验
- 高斯-赛得尔迭代式 c++_高斯混合模型(Gaussian Mixture Model)与EM算法原理(一)
- 基于uml的系统分析的网上商城_UML建模工具Enterprise Architect最新版有哪些新功能呢?立即查看...
- HTTP over QUIC重命名为“HTTP / 3”协议
- C#软件开发实例.私人订制自己的屏幕截图工具(十)在截图中包括鼠标指针形状...
- requests-发送post请求
- mysql where子句 参数_MySql——使用where子句过滤数据
- linux 开机密码忘了,linux系统开机忘记密码
- 『码上行动-编程擂台』学员作品展(附源码)
- wps转ppt怎么转换?通过这些方法学会wps如何转换成ppt
- 「为了孩子上海淀小学,我一周上七节课」
- Python学习之道-串口编程TEMI880温箱控制
- 日记侠:知识付费创富没赶上,看别人赚钱你急不急?
- html编码后台转换,HTML编码转换、HTML部分实体
- Echarts各个图表data的格式问题