java根据HashMap中的值将其元素排序

思路:HashMap或Map本身没有排序功能,若要进行较轻松的排序,可利用ArrayList中的sort方法

例子:

import java.util.ArrayList;
import java.util.Comparator;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class MapSorter {

    public static void main(String[] args){

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

        map.put("Five", 5);
        map.put("Seven", 7);
        map.put("Eight", 8);
        map.put("One",1);
        map.put("Two",2);
        map.put("Three", 3);

        for(Map.Entry<String, Integer> entry : map.entrySet()){
             list.add(entry); //将map中的元素放入list中
        }

        list.sort(new Comparator<Map.Entry<String, Integer>>(){
              @Override
               public int compare(Map.Entry<String, Integer> o1, Map.Entry<String, Integer> o2) {
                    return o2.getValue()-o1.getValue();}
                   //逆序(从大到小)排列,正序为“return o1.getValue()-o2.getValue”
        }); 

        for(Map.Entry<String, Integer> entry: list){
              System.out.println(entry);
        }
    }
}

/*
* 输出结果:
* Eight=8
* Seven=7
* Five=5
* Three=3
* Two=2
* One=1
*/
时间: 2024-09-29 18:21:23

java根据HashMap中的值将其元素排序的相关文章

jAVA 获取Map中的值

jAVA 获取Map中的值 Map<String, String> map=new HashMap<String, String>(); map.put("name", "饶伟"); map.put("sex", "男"); map.put("address", "大连"); 方法1 for (Map.Entry<String, String> Map

辨析Java方法参数中的值传递和引用传递

小方法大门道 小瓜瓜作为一个Java初学者,今天跟我说她想通过一个Java方法,将外部变量通过参数传递到方法中去,进行逻辑处理,方法执行完毕之后,再对修改过的变量进行判断处理,代码如下所示. public class MethodParamsPassValue { public static void doErrorHandle() { boolean a = false; int b = 5; passBaseValue(a, b); if (a == true || b == 10) { S

java截取url中的值

1 Map<String, Object> urlSplit(String data){ 2 StringBuffer strbuf = new StringBuffer(); 3 StringBuffer strbuf2 = new StringBuffer(); 4 Map<String ,Object> map = new HashMap<String,Object>(); 5 for(int i =0;i<data.length();i++){ 6 7 i

java 将一个数组中的值按逆序重新存放,例如,原来顺序为:9,5,7,4,8,要求改为:8,4,7, 5,9。

1 public class Test3 { 2 3 public static void main(String[] args) { 4 5 int[] grade = {87,88,89,98,78}; 6 7 int m; 8 for(int i = 0; i < 2; i++){ 9 10 m = grade[i]; 11 grade[i] = grade[5-i-1]; 12 grade[5-i-1] = m; 13 14 } 15 for(int j =0; j < 5; j++)

angularJS操作键值对象(类似java的hashmap)填坑小结

前言: 我们知道java的hashmap中使用最多的是put(...),get(...)以及remove()方法,那么在angularJS中如何创造(使用)这样一个对象呢 思路分析: 我们知道在java中可以采用链式访问和"[]"访问hashmap的某一个值 具体实现: 链式访问: .factory('ParamsServices', function () { var params = {}; return { get: function (key) { return params.

Java HashMap 如何正确遍历并删除元素

(一)HashMap的遍历 HashMap的遍历主要有两种方式: 第一种采用的是foreach模式,适用于不需要修改HashMap内元素的遍历,只需要获取元素的键/值的情况. HashMap<K, V> myHashMap; for (Map.entry<K, V> item : myHashMap.entrySet()){ K key = item.getKey(); V val = item.getValue(); //todo with key and val //WARNI

How java implements HashMap

1. How java implements HashMap HashMap Custom implementation in java - How HashMap works internally with diagrams and full program http://www.javamadesoeasy.com/2015/02/hashmap-custom-implementation.html 2. HashMap interview question 17.在Java中,HashMa

黑马程序员——通过HashMap的value值,得到key键值

------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- HashMap中key值是唯一的,但value是不唯一的:同一个value可能返回多个key下面是个例子:找出value是“value”的key 1 import java.util.HashMap; 2 import java.util.Iterator; 3 import java.util.Map; 4 import java.util.Set; 5 public class HashM

java随笔——HashMap与红黑树

前言: hashmap是一种很常用的数据结构,其使用方便快捷,接下来笔者将给大家深入解析这个数据结构,让大家能在用的时候知其然,也知其所以然. 一.Map 首先,从最基本的讲起,我们先来认识一下map是个什么东西.在我们写程序的时候经常会遇到数据检索等操作,对于几百个数据的小程序而言,数据的存储方式或是检索策略没有太大影响,但对于大数据,效率就会差很远.我们来讨论一下这个问题. 1.线性检索: 线性检索是最为直白的方法,把所有数据都遍历一遍,然后找到你所需要的数据.其对应的数据结构就是数组,链表