java升序降序排列desc,TreeMap升序|降序排列和按照value进行排序

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());

}

}

js学习篇--数组按升序降序排列

mapreduce程序的按照key值从大到小降序排列

在近期的Hadoop的学习中,在学习mapreduce时遇到问题:让求所给数据的top10,们我们指导mapreduce中是有默认的排列机制的,是按照key的升序从大到小排列的 然而top10问题的求 ...

转<<C#集合Dictionary中按值的降序排列

转载地址:http://blog.sina.com.cn/s/blog_5c5bc9070100pped.html C#集合Dictionary中按值的降序排列 static void Main(st ...

MSSQL 随机查询且降序排列

--随机查询且降序排列 * FROM dbo.COMPANY_USER_INFO ORDER BY NEWID()) AS T ORDER BY T.cu_id DESC

Shell练习 统计单词个数,降序排列

原文:https://leetcode.com/problems/word-frequency/ Write a bash script to calculate the frequency of e ...

C# List.sort排序详解(多权重,升序降序)

很多人可能喜欢Linq的orderBy排序,可惜U3D里面linq在Ios上会报错,所以就必须使用list的排序. 其实理解了并不难 升序降序比较 sort有三种结果 1,-1,0分别是大,小,相等. ...

Linux显示按文件大小降序排列

Linux显示按文件大小降序排列 youhaidong@youhaidong-ThinkPad-Edge-E545:~$ ls -ls 总用量 56 12 -rw-r--r-- 1 youhaidon ...

python小练习: 给定一个数组 按重复次数 降序排列输出 数组非空且为正整数

假设有个列表  a=[1,1,1,2,2,4,5,5,5,5] (非空且为正整数) 那么根据要求 最终输出的形式为  5,1,2,4  (按重复次数 降序排列输出) 代码实现及解释: a=[1,1,1 ...

随机推荐

ZeroMQ接口函数之 :zmq_connect - 由一个socket创建一个对外连接

ZeroMQ 官方地址 :http://api.zeromq.org/4-0:zmq_connect zmq_connect(3)  ØMQ Manual - ØMQ/3.2.5 Name zmq_c ...

Core Data的简单用法

#import "ViewController.h" // 第一步:引入头文件AppDelegate #import "AppDelegate.h" #impo ...

uploadify 3.2 后台动态传参数

最近在弄一个上传的小功能,需要往后台传递一些动态参数,网上有一些传参数可能是因为版本不对也没成功.仔细看了官网的一些说明,搞定了. 3.2中传递参数用的的是'formData':{'somekey': ...

Uva 10288 Coupons

Description Coupons in cereal boxes are numbered \(1\) to \(n\), and a set of one of each is require ...

Unity 使用有限状态机 完美还原 王者荣耀 虚拟摇杆

Unity 使用有限状态机 完美还原 王者荣耀 虚拟摇杆 效果如图所示 摇杆的UI组成 如图所示 简单的可以认为摇杆由1.2.3贴图组成 为摇杆的底座 为摇杆的杆 为摇杆的指向 可以理解这就是街机上的 ...

Linux下部署配置Nginx

1.安装工具包 yum install -y wget 下载工具 yum install -y vim-enhanced vim编辑器 yum install -y make cmake gcc gc ...

c语言把mysql数据库语句和变量封装为一个语句

我有一个语句 sql = "insert into talbe_name  values(name,age)"  其中name和age两个变量根据外面的输入来确定,有两种方法 1: ...

SQL 动态PIVOT查询

DECLARE @sql_str VARCHAR(8000)DECLARE @sql_col VARCHAR(8000) SELECT @sql_col = ISNULL(@sql_col + ',' ...

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值