Map按value排序并取前10条
来源:互联网 发布:淘宝钻石展位有效果吗 编辑:程序博客网 时间:2024/06/03 18:21
//Map 按value值从大到小排序,并取前10
public static Map<String, Double> sortMapByValue(Map<String, Double> map) {
Map<String, Double> sortedMap = new LinkedHashMap<String, Double>();
List<Entry<String,Double>>lists=new ArrayList<Entry<String,Double>>(map.entrySet());
Collections.sort(lists,new Comparator<Map.Entry<String, Double>>() {
public int compare(Map.Entry<String, Double> o1,Map.Entry<String, Double> o2)
{
double q1=o1.getValue();
double q2=o2.getValue();
double p=q2-q1;
if(p>0){
return 1;
}
else if(p==0){
return 0;
}
else
return -1;
}
});
sortedMap.put(set.getKey(), set.getValue());
}
}else {
for(Map.Entry<String, Double> set:lists){
sortedMap.put(set.getKey(), set.getValue());
}
}
return sortedMap;
public static Map<String, Double> sortMapByValue(Map<String, Double> map) {
Map<String, Double> sortedMap = new LinkedHashMap<String, Double>();
List<Entry<String,Double>>lists=new ArrayList<Entry<String,Double>>(map.entrySet());
Collections.sort(lists,new Comparator<Map.Entry<String, Double>>() {
public int compare(Map.Entry<String, Double> o1,Map.Entry<String, Double> o2)
{
double q1=o1.getValue();
double q2=o2.getValue();
double p=q2-q1;
if(p>0){
return 1;
}
else if(p==0){
return 0;
}
else
return -1;
}
});
if(lists.size()>=10){
//lists.subList()用法
for(Map.Entry<String, Double> set:lists.subList(0, 10)){sortedMap.put(set.getKey(), set.getValue());
}
}else {
for(Map.Entry<String, Double> set:lists){
sortedMap.put(set.getKey(), set.getValue());
}
}
return sortedMap;
}
public static void main(String[] args) {
Map<String,Double> map=new TreeMap<String,Double>();
map.put("mit", 3795104.300);
map.put("ramin", 6.155);
map.put("research", 889.159);
map.put("mit1", 3795105.300);
map.put("ramin1", 7.155);
map.put("research1", 900.159);
map.put("mix1", 2.375);
map.put("gorgeou1", 10.341);
map.put("shneiderman1", 8.775);
System.out.println(sortMapByValue(map));
}
输出结果:
{mit1=3795105.3, mit=3795104.3, research1=900.159, research=889.159, gorgeou1=10.341, gorgeou=9.341, shneiderman1=8.775, shneiderman=7.775, ramin1=7.155, ramin=6.155}
阅读全文
0 0
- Map按value排序并取前10条
- 取map容器的前10大(根据每一个value排序)元素
- Oracle取中间记录 取前10条记录 Oracle按排序取中间记录
- Map按value排序
- Map按value排序
- map按value排序
- map 按value排序
- map按value排序
- map 按value 排序
- java 操作oracle 数据库,按Time排序 ,取前10条
- 取前10条记录
- java Map 按value排序
- Java按Value排序Map
- Java Map按Value排序
- Map排序---按value值排序
- Linq 分组,求和,多个字段排序,取前10条
- Linq分组及排序,取前N条记录
- Mysql分组统计、排序、取前N条记录解决方案
- elasticsearch 5.x删除index/type
- Linux简单文本处理以及数据流重定向
- DHT里面Hash算法的设计,及其如何抵御极端情况下的DoS攻击?
- 反向传播学习算法
- pat图
- Map按value排序并取前10条
- Spring揭秘 学习笔记一 (Spring的IoC容器 二)
- html
- linux安装jdk,设置环境变量遇到的一个奇葩问题
- 二叉树的建立,删除,查找,插入,输出(数据结构)
- Ubuntu 命令技巧
- 软考方案
- 四大线程池详解
- 高性能Server-Reactor模型