我正在尝试在HashMap中放置一些键值,然后尝试使用TreeMap进行排序,如下所示.问题是如果地图中有类似的值,那么在排序后它会考虑其中任何一个.

import java.util.*;

public class HashmapExample {

public static void main(String[] args) {

HashMap map = new HashMap();

ValueComparator bvc = new ValueComparator(map);

TreeMap sorted_map = new TreeMap(bvc);

map.put("A",99);

map.put("B",67);

map.put("C",123);

map.put("G",67);

map.put("F",67);

map.put("H",67);

map.put("D",6);

System.out.println("unsorted map");

for (String key : map.keySet()) {

System.out.println("key/value: " + key + "/"+map.get(key));

}

sorted_map.putAll(map);

System.out.println("results after sorting");

for (String key : sorted_map.keySet()) {

System.out.println("key/value: " + key + "/"+sorted_map.get(key));

}

}

}

class ValueComparator implements Comparator {

Map base;

public ValueComparator(Map base) {

this.base = base;

}

public int compare(Object a,Object b) {

if((Integer)base.get(a) > (Integer)base.get(b)) {

return 1;

} else if((Integer)base.get(a) == (Integer)base.get(b)) {

return 0;

} else {

return -1;

}

}

}

在此之后输出如下

unsorted map

key/value: D/6

key/value: A/99

key/value: F/67

key/value: H/67

key/value: C/123

key/value: B/67

key/value: G/67

results after sorting

key/value: D/6

key/value: F/67

key/value: A/99

key/value: C/123

对于B,G,F和H键,我给出值为67.在排序映射之后,它仅显示F值并且消除B,G和H值.我想显示下面的输出

key/value: D/6

key/value: B/67

key/value: G/67

key/value: F/67

key/value: H/67

key/value: A/99

key/value: C/123

java treemap排序_java – 使用TreeMap排序问题相关推荐

  1. java8 treemap 排序_Java中TreeMap按照KEY排序实现讲解

    TreeMap 是一个有序的key-value集合,它是通过红黑树实现的,该映射根据其键的自然顺序进行排序,或者根据创建映射时提供的 Comparator 进行排序,具体取决于使用的构造方法.继承于A ...

  2. java日期排序_java实现日期排序问题

    展开全部 java按文件日期排序方法,下面以对62616964757a686964616fe59b9ee7ad9431333337623431C盘Java目录下文件进行按日期排序为例://引用java ...

  3. java comparable排序_java 实现Comparable接口排序,升序、降序、倒叙

    本人由于项目开发中需要对查询结果list进行排序,这里根据的是每一个对象中的创建时间降序排序.本人讲解不深,只实现目的,如需理解原理还需查阅更深的资料. 1.实现的效果 2.创建排序的对象 packa ...

  4. java 性能 排序_Java常用排序算法及性能测试集合

    package algorithm.sort; import java.lang.reflect.Method; import java.util.Arrays; import java.util.D ...

  5. java list 排序_java list排序

    java list 排序主要用到: Collections.sort方法: package com.tom.compare; import java.util.ArrayList; import ja ...

  6. java set排序_Java Set排序的方法

    Java Set排序的方法 Set中TreeSet 本身就是有序的元素,那么下面重点介绍下HashSet的2种排序方法. 1. 把HashSet保存在ArrayList里,再用Collections. ...

  7. java linkedlist排序_Java LinkedList排序

    首页 > 基础教程 > 集合框架 > LinkedList类 Java LinkedList排序 LinkedList通过Collections.sort进行排序,代码如下: 降序 ...

  8. java steam 排序_Java使用Steams VS TreeMap对地图进行排序

    正如其他人指出的那样,将已排序的条目流转储到常规HashMap中将无济于事--LinkedHashMap是合乎逻辑的选择. 但是,上述方法的替代方法是充分利用Stream Collectors API ...

  9. java comparable排序_Java使用Comparable解决排序问题

    本文实例讲述了Java使用Comparable解决排序问题的方法.分享给大家供大家参考.具体实现方法如下: 一次举重竞赛的比赛规则是:选手的成绩以成功举起的总重量来排序,举起总重量多的排在前面:当举起 ...

  10. java keyset 排序_JAVA中KEYSET()返回值的排序问题

    上回说到,由于对数据进行处理的时候是按照乱序一行一行的处理,导致并行线程各自占据了一部分数据,谁也不肯释放,从而发生死锁. 为什么会乱序,是因为取得数据行主键的时候,使用了HashMap.keySet ...

最新文章

  1. 常用的CSS(收集)
  2. DAY2-python基础1
  3. SQL 从一个表读取数据存到另一个表
  4. 微软虚拟化平台现在可以管理VMware!
  5. 2.4.4 死锁的处理策略-检测和解除
  6. ArcGIS for Android 中MapView截图实现方法
  7. 【Matlab】一种超简单的二维矩阵降维方法
  8. 数据库升级后,准备使用原有数据文件启动数据库
  9. JavaScript时间日期函数
  10. robocopy帮助
  11. Java通过Class的对象来获取泛型的class示例
  12. 10分钟 在linux里创建.net core helloworld控制台程序
  13. 2020年Airbnb爱彼迎中国房东社区报告
  14. java 1.7 环境变量_安装JDK1.8之后又安装1.7出现的环境变量问题
  15. 耳机热插拔检测(五)
  16. 签入代码(新建分支,新建推拉请求)关联工作项,却找不到自己需要的工作项...
  17. 苏州大学计算机考研资料汇总
  18. 提高睡眠质量的东西,每天晚上睡不着的你一定要试试
  19. 停用Windows Defender Antivirus Service内存
  20. cocoscreator热更新

热门文章

  1. app上架oppo应用商店流程
  2. html设计渐变背景,HTML网页设计之div渐变背景色
  3. Rails PayPal 支付对接
  4. 树莓派4B设置USB启动
  5. 特斯拉又遇致命车祸:车主严重烧伤无法辨认 事故一天后电池复燃
  6. RecyclerView实现横向滚动
  7. 一个简化的正弦余弦算法:正弦算法
  8. Word 分节设置不同起始页码
  9. hdu 2079 - 选课时间
  10. 洛谷 P1957 口算练习题