map根据value从大到小排序

/**
     * map根据value值排序
     * @param map 
     * @param num num<0取全部的值,num>=0取前num个
     * @return
     */
    public static <K,V extends Comparable<? super V>> List<K> revsort(Map<K, V> map,int num){
        List<Map.Entry<K, V>> list = new ArrayList<Map.Entry<K,V>>(map.entrySet());
        Collections.sort(list, new Comparator<Map.Entry<K, V>>() {
            @Override
            public int compare(Entry<K, V> o1, Entry<K, V> o2) {
                 return (o2.getValue()).compareTo( o1.getValue() );
            }
        });
         List<K> result = new ArrayList<K>();
         if(num<0){
            result.add(list.get(num).getKey());
            for(Entry<K, V> entry : list){
                result.add(entry.getKey());
            }
         }else{
             for(int i=0;i<num;i++){
                 result.add(list.get(i).getKey());
             }
         }
          System.out.println(result);

        return result;
    }
时间: 2024-08-28 12:00:38

map根据value从大到小排序的相关文章

hashmap先按照value从大到小排序,value相等时按照key从小到大排序

hashmap先按照value从大到小排序,value相等时按照key从小到大排序. [2]是从小到大排序,在[2]代码基础上交换o1,o2位置即可. 代码中用到[1]中提到的在value相等时再比较key的方法. static Map sortByValue(Map map) { List list = new LinkedList(map.entrySet()); Collections.sort(list, new Comparator() { public int compare(Obj

输入5个学生的名字(英文),使用冒泡排序按从大到小排序。 提示:涉及到字符串数组,一个字符串是一个一维字符数组;一个 字符串数组就是一个二维字符数组。

#include <stdio.h>#include <string.h> /*输入5个学生的名字(英文),使用冒泡排序按从大到小排序.提示:涉及到字符串数组,一个字符串是一个一维字符数组:一个字符串数组就是一个二维字符数组.*/ void main(){ char stuNames[5][100]; char tmp[100]; int i = 0,j = 0; for(i = 0; i < 5; i++) { printf("请输入第%d个学生的名字:"

Python3基础 sort 从小到大排序与从大到小排序sort(reverse = True)

镇场诗: 诚听如来语,顿舍世间名与利.愿做地藏徒,广演是经阎浮提. 愿尽吾所学,成就一良心博客.愿诸后来人,重现智慧清净体.------------------------------------------ code: myList=[1,3,2,5,61,123] #从小到大排序 myList.sort() print(myList) #从大到小排序 myList.sort(reverse = True) print(myList) result: ============= RESTART

随机排序和从大到小排序以及从小到大排序

1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta charset="utf-8"> 5 <title></title> 6 <style type="text/css"> 7 *{ 8 margin: 0; 9 padding: 0; 10 } 11 li{list-style: none;} 12 #box{ 13 width: 500px;

2016.06.06 周一 C语言 将字符串根据字符的ASCII码从大到小排序并打印出字符串中的字符类型的总数

第一次变量冲突问题 解决了一个多小时,.... 代码如下: ↓ #include<stdio.h> #include<string.h> #define N 200 //输入字符串的最大长度 int main() { //************************输入开始部分******************************** printf("请输入字符串.(长度在200以内)\n\n"); int i=0,j,k,temp,lowLetter

将mysql某个数据库中表的行数从大到小排序

随着公司的业务越来越大,工作中需要对某一个数据库的表进行分表,为了做的更细致一点,在该数据库中,将所有表,按行数从到小排序: 实现方式: mysql> use information_schema; Reading table information for completion of table and column names You can turn off this feature to get a quicker startup with -A Database changed mys

编写一个void sort(int*x,int n)实现将x数组中的n个数据从大到小排序。n及数组元素在主函数中输入。将结果显示在屏幕上并输出到文件

#include<stdio.h> void sort(int*x,int n) { int i,j,k,t; for(i=0;i<n-1;i++) { k=i; for(j=i+1;j<n;j++) if(x[j]>x[k]) k=j; if(k!=i) { t=x[i]; x[i]=x[k]; x[k]=t; } } } void main() { FILE*fp; int *p,i,a[10]; fp=fopen("array.out","

/*将数组{17,82,-4,55}和数组{34,11,66,56,76}合并放入一个数组中,然后 对其中的元素进行排序。按从大到小排序。*/

#include <stdio.h>void main(){ int a[4]={17,82,-4,55},b[5]={34,11,66,56,76},c[9],i,j,n,temp; printf("原来的第一个数组是:\n"); for(i=0;i<4;i++) { printf("%d\n",a[i]); } printf("原来的第二个数组是:\n"); for(j=0;j<5;j++) { printf(&quo

输入全班同学的年龄,按年龄从大到小排序

Console.Write("人数:");int n = int.Parse(Console.ReadLine()); int[] nianling = new int[n];int max = 0, min = 0, sum = 0;for (int i = 0; i < n; i++){Console.Write("第{0}个人的年龄为:", i + 1);nianling[i] = int.Parse(Console.ReadLine());sum =