package com.zhilei.test;

import java.util.Comparator;
import java.util.HashMap;
import java.util.Map;
import java.util.TreeMap; public class mapValueCompareSort {
public static void main(String[] args) { HashMap<String, Double> mapDesc = new HashMap<String, Double>();
ValueComparator bvcDESC = new ValueComparator(mapDesc);
TreeMap<String, Double> sorted_map_Desc = new TreeMap<String, Double>(bvcDESC); mapDesc.put("A", 99.5);
mapDesc.put("B", 67.4);
mapDesc.put("C", 67.4);
mapDesc.put("D", 67.3);
mapDesc.put("E", 11.0);
mapDesc.put("F", -0.1);
mapDesc.put("G", 0.1);
mapDesc.put("H", -99.1); sorted_map_Desc.putAll(mapDesc); System.out.println("降序=====results: " + sorted_map_Desc); HashMap<String, Double> mapAsc = new HashMap<String, Double>();
ValueComparatorAsc bvcAsc = new ValueComparatorAsc(mapAsc);
TreeMap<String, Double> sorted_mapAsc = new TreeMap<String, Double>(bvcAsc); mapAsc.put("宽", 99.5);
mapAsc.put("B", 67.4);
mapAsc.put("C", 67.4);
mapAsc.put("D", 67.3);
mapAsc.put("r", 11.0);
mapAsc.put("rt", -0.1);
mapAsc.put("ee", 0.1);
mapAsc.put("cc", -99.1); System.out.println("升序====unsorted map: " + mapAsc); sorted_mapAsc.putAll(mapAsc); System.out.println("升序====results: " + sorted_mapAsc); }
} class ValueComparator implements Comparator<String> {
Map<String, Double> base; public ValueComparator(Map<String, Double> base) {
this.base = base;
} public int compare(String a, String b) {
if (base.get(a) >= base.get(b)) {
return -1;
} else {
return 1;
}
}
} class ValueComparatorAsc implements Comparator<String> {
Map<String, Double> base; public ValueComparatorAsc(Map<String, Double> base) {
this.base = base;
} public int compare(String a, String b) {
if (base.get(a) <= base.get(b)) {
return -1;
} else {
return 1;
}
} }

map按值排序的更多相关文章

  1. 搜狗面试的经典题(C++map按值排序,class struct的差别)

    一:起因 (1)java  Map排序(key,value).请看还有一篇博客 java Map排序 (2)c++ map排序(key,value),能够对c++ map和java Map进行对照:之 ...

  2. 恕我直言你可能真的不会java第12篇-如何使用Stream API对Map类型元素排序

    在这篇文章中,您将学习如何使用Java对Map进行排序.前几日有位朋友面试遇到了这个问题,看似很简单的问题,但是如果不仔细研究一下也是很容易让人懵圈的面试题.所以我决定写这样一篇文章.在Java中,有 ...

  3. Map<Key,Value>基于Value值排序

    Map<Key,Value> 排序默认是按照KEY值的升序来进行. 针对按照Value来进行排序有两种方法: 第一种 使用TreeMap  代码如下 public class test{ ...

  4. Java Map按键(Key)排序和按值(Value)排序

    Map排序的方式有很多种,两种比较常用的方式:按键排序(sort by key), 按值排序(sort by value).1.按键排序jdk内置的java.util包下的TreeMap<K,V ...

  5. C++ map排序(按照value值排序)_glp_hit_新浪博客

    C++ map排序(按照value值排序)_glp_hit_新浪博客     C++ map排序(按照value值排序)    (2012-07-12 14:19:51)    转载▼    标签:  ...

  6. java -- 对Map按键排序、按值排序

                             java  -- 对Map按键.按值排序 1.按键排序(sort by key) 直接上代码  ↓ public Map<String, Str ...

  7. 通过反射,获取linkedHashMap的最后一个键值对。对map按照值进行排序。

    1:通过反射,获取linkedHashMap的最后一个键值对. Map<Integer, Integer> map = new LinkedHashMap<>(); Field ...

  8. 160725、Java Map按键排序和按值排序

    按键排序(sort by key) jdk内置的Java.util包下的TreeMap<K,V>既可满足此类需求,原理很简单,其重载的构造器之一 有一个参数,该参数接受一个比较器,比较器定 ...

  9. STL map 按key值和按value值排序

    map是用来存放<key, value>键值对的数据结构,能够非常方便高速的依据key查到对应的value. 假如存储水果和其单位价格.我们用map来进行存储就是个不错的选择. 我们这样定 ...

随机推荐

  1. arcgis server 9.3 查看地图服务时出现"No Content"错误

    问题描述: 使用ArcGIS Server Manager的Add new service功能发布一个服务.然后启动服务 用浏览器访问该服务的地址http://localhost/ArcGIS/ser ...

  2. JDK工具系列之jps

    一.简介 jps(JVM Process Status Tool)是虚拟机进程状态工具:可以列出正在运行的虚拟机进程,显示虚拟机正在执行的main()函数,及这些进程的ID(LVMID,Local V ...

  3. [HNOI2007]紧急疏散EVACUATE

    嘟嘟嘟 看数据范围,第一反应觉得爆搜是不是能骗点分,但发现爆搜太难写了,于是就开始想想正解…… 正解大概猜到了是网络流,但是怎么把时间这个条件加入到图的内容中,却困扰了我好半天,总是感觉把这种不同维度 ...

  4. tp3.2中的 I () 方法

    I('get.id'); // 相当于 $_GET['id']

  5. 使用Timer组件_实现定时更改窗体颜色

    1 向窗体拖入Timer组件 2 更改其Enable属性为true 3 其interval属性为300 4 在Tick事件中写入随机变色代码 private void timer1_Tick(obje ...

  6. SSH框架——(二)四层结构:DAO,Service,Controller,View层

    1. DAO层: 主要任务:做数据持久层的工作,负责与数据库进行联络的一些任务都封装在此. DAO层的设计:首先是设计DAO层的接口,然后再Spring的配置文件中定义此接口的实现类,然后就可以在模块 ...

  7. [转]GeoServer地图开发解决方案(一):环境搭建篇

    GeoServer 是 OpenGIS Web 服务器规范的 J2EE 实现的社区开源项目,利用 GeoServer 可以方便的发布地图数据,允许用户对特征数据进行更新.删除.插入操作,通过 GeoS ...

  8. C#XML格式字符串取节点数据

    XML格式的字符串: <xml><return_code><![CDATA[{0}]]></return_code><return_msg> ...

  9. Spring mvc实现ex导入导出

    依赖架包 <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</arti ...

  10. 自定义属性之LinearLayout ImageView TextView模拟图片文字按钮

    一.资源文件: 1.文字选择器: <?xml version="1.0" encoding="utf-8"?> <selector xmlns ...