将Map按其value进行降序排序

由于Map中的TreeMap只能按key排序,本文中实现了通过Collections工具类及comparator接口实现Map按value排序

package me;

import java.util.ArrayList;

import java.util.Collections;

import java.util.Comparator;

import java.util.LinkedHashMap;

import java.util.List;

import java.util.Map;

import java.util.Map.Entry;

/**

* 将Map中的Entry按照value的降序排序

*

* @author:TuGh,WangM

*/

public class TreeMapTest {

public static void main(String[] args) {

Map<Integer,Double> map =new LinkedHashMap<Integer,Double>();

map.put(5, 100.0);

map.put(1, 2.0);

map.put(2, 5.0);

map.put(3, 2.0);

map.put(4, 4.0);

System.out.println(map.entrySet());

List<Map.Entry<Integer, Double>> list = new ArrayList<Map.Entry<Integer, Double>>(map.entrySet());

//使用Collections工具类对list进行排序

Collections.sort(list, new Comparator<Map.Entry<Integer, Double>>() {

@Override

public int compare(Entry<Integer, Double> o1, Entry<Integer, Double> o2) {

// TODO Auto-generated method stub

//按Entry里面的value降序排序

return o2.getValue().compareTo(o1.getValue());

//按Entry里面的value升序排序

//return o1.getValue().compareTo(o2.getValue());

}

});

/**

*将按value排好序的Entry放入map中

**/

map = null;

map = new LinkedHashMap<Integer, Double>();

for(Map.Entry<Integer, Double> temp:list){

map.put(temp.getKey(), temp.getValue());

}

System.out.println(map.entrySet());

}

}

时间: 2024-09-30 19:47:59

将Map按其value进行降序排序的相关文章

java算法面试题:有一个字符串,其中包含中文字符、英文字符和数字字符,请统计和打印出各个字符的个数 按值的降序排序,如果值相同则按键值的字母顺序

package com.swift; import java.util.HashMap; import java.util.Map; import java.util.Map.Entry; public class Zhongwen_Shuzi_Times { public static void main(String[] args) { /* * 有一个字符串,其中包含中文字符.英文字符和数字字符,请统计和打印出各个字符的个数 */ String str="琅琊榜fengqichanglin

现在输入 n 个数字, 以逗号, 分开; 然后可选择升或者 降序排序;

/* 现在输入 n 个数字, 以逗号, 分开: 然后可选择升或者 降序排序: */ import java.util.*; public class bycomma{ public static String[] splitStringByComma(String source){ if(source==null||source.trim().equals("")){ return null; } StringTokenizer commaToker = new StringToken

怎么实现元素ol的降序排序显示

首先介绍一下什么是ol元素.这里直接引用MDN里面的定义:The HTML <ol> Element (or HTML Ordered List Element) represents an ordered list of items.也就是说这个元素的包含的li元素是带有数字序号的.为了更好阐述下面介绍的几种方法,我们首先写出一个有序列表: 1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta http-equiv=

DataGridView使用技巧十三:点击列头实现升序和降序排序

DataGridView 列有三种排序模式.每一列的排序模式是通过该列的 SortMode 属性指定的,该属性可以设置为以下的 DataGridViewColumnSortMode 枚举值之一. DataGridViewColumnSortMode 值说明: Automatic 文本框列的默认排序模式.除非将列标头用于选择,否则单击列标头将自动按此列对 DataGridView 排序,并显示一个指示排序顺序的标志符号(向上的三角箭头:升序排序:向下的三角箭头:降序排序). NotSortable

HTML中实现Table表头点击升序/降序排序

1 题目:如下图,请实现表格信息的排序功能,当点击表头的属性区域,将表格信息进行排序切换功能,即第一次点击为降序排序,再一次点击进行升序排序. 2 姓名 力量 敏捷 智力 3 德鲁伊王 17 24 13 4 月之骑士 15 22 16 5 众神之王 19 15 20 6 流浪剑客 23 15 14 7 基本思路: 8 点击将各列数值存入数组第一次点击?(className=="as"?)升序排序(className="desc")按新排列的数组的顺序,将各列赋予新值

oc将字符串中单词按照出现次数(次数都不一样)降序排序,排序之后单词只出现一次,源字符串中单词用下划线连接,生成字符串也用下滑线连接

/* 将字符串中单词按照出现次数(次数都不一样)降序排序,排序之后单词只出现一次,源字符串中单词用下划线连接,生成字符串也用下滑线连接(10分) 如传入:@"good_good_study_good_study" 返回:@"good_study" 如传入:@"I_love_I_hate_love_love" 返回:@"love_I_hate" */ 方法1:选择排序 -(NSString *)sortStringByNumbe

java数组降序排序之冒泡排序

1 import java.util.Arrays;//必须加载 2 class Demo{ 3 public static void main(String []args){ 4 int[] arr={3,54,456,342,2798,15,78,56,95,5678,9,5}; 5 System.out.println(Arrays.toString(arr));//java打印数组,排序前[3, 54, 456, 342, 2798, 15, 78, 56, 95, 5678, 9, 5

c++ sort降序排序

sort是c++ STL中提供的一个函数模板,可以用来对多种类型进行排序. 默认是升序排序.它有两种使用方法: default (1) template <class RandomAccessIterator> void sort (RandomAccessIterator first, RandomAccessIterator last); custom (2) template <class RandomAccessIterator, class Compare> void s

函数指针作为函数參数,实现冒泡排序的升序排序和降序排序

#include<stdio.h> #define N 10//定义数组元素个数 int Ascending(int a,int b);//升序排列的函数声明 int Descending(int a,int b);//降序排列的函数声明 void swap(int*,int*);//交换数据的函数声明 void BubbleSort(int a[],int n,int (*compare)(int,int));//声明排序函数,通过函数指针作为函数调用 void Display(int a[