博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
TreeMap升序|降序排列和按照value进行排序
阅读量:7041 次
发布时间:2019-06-28

本文共 1710 字,大约阅读时间需要 5 分钟。

TreeMap 升序|降序排列

import java.util.Comparator;import java.util.TreeMap;public class Main {    public static void main(String[] args) {        TreeMap
map1 = new TreeMap
(); //默认的TreeMap升序排列 TreeMap
map2= new TreeMap
(new Comparator
(){ /* * int compare(Object o1, Object o2) 返回一个基本类型的整型, * 返回负数表示:o1 小于o2, * 返回0 表示:o1和o2相等, * 返回正数表示:o1大于o2。 */ public int compare(Integer a,Integer b){ return b-a; } }); map2.put(1,2); map2.put(2,4); map2.put(7, 1); map2.put(5,2); System.out.println("Map2="+map2); map1.put(1,2); map1.put(2,4); map1.put(7, 1); map1.put(5,2); System.out.println("map1="+map1); }}

TreeMap按照value进行排序

TreeMap底层是根据红黑树的数据结构构建的,默认是根据key的自然排序来组织(比如integer的大小,String的字典排序)。所以,TreeMap只能根据key来排序,是不能根据value来排序的(否则key来排序根本就不能形成TreeMap)。

今天有个需求,就是要根据treeMap中的value排序。所以网上看了一下,大致的思路是把TreeMap的EntrySet转换成list,然后使用Collections.sor排序。代码:

public static void sortByValue() {        Map
map = new TreeMap
(); map.put("a", "dddd"); map.put("d", "aaaa"); map.put("b", "cccc"); map.put("c", "bbbb"); List
> list = new ArrayList
>(map.entrySet()); Collections.sort(list,new Comparator
>() { //升序排序 public int compare(Entry
o1, Entry
o2) { return o1.getValue().compareTo(o2.getValue()); } }); for (Entry
e: list) { System.out.println(e.getKey()+":"+e.getValue()); } }

 

转载地址:http://wuhal.baihongyu.com/

你可能感兴趣的文章
STL--集和多集(set/multiset)
查看>>
【struts2】Action的生命周期
查看>>
net start mysql启动mysql,提示发生系统错误 5 拒绝访问 解决方法
查看>>
【转】MVC4验证用户登录特性实现方法
查看>>
[CLR via C#]7. 常量和字段
查看>>
SDUT 1124-飞跃荒野(三维BFS)
查看>>
wcf 请考虑增加操作超时
查看>>
【设计模式】简单工厂模式
查看>>
[LeetCode] Binary Tree Paths 二叉树路径
查看>>
对JAVA集合进行遍历删除时务必要用迭代器
查看>>
poj 2010 Moo University - Financial Aid(优先队列(最小堆)+ 贪心 + 枚举)
查看>>
统计多少个汉字与字母
查看>>
Odoo9发行说明
查看>>
logging日志管理--将日志打印在屏幕上
查看>>
6个理由告诉你为什么要用NAS
查看>>
使用EPEL和REMI第三方yum源
查看>>
时间单位的档案
查看>>
细数人们对安卓的误解
查看>>
PF_NETLINK应用实例NETLINK_KOBJECT_UEVENT具体实现--udev实现原理
查看>>
mongodb 3.x 之实用新功能窥看[2] ——使用$lookup做多表关联处理
查看>>