精华内容
下载资源
问答
  • hashmap根据value排序
    2022-07-01 22:11:46

    步骤

    1、实现Map.Entry的Comparator接口

    2、构建一个entry链表

    3、调用Collections.sort方法对entry链表排序

    import java.util.*;
    class Test{
    	public static void main(String[] args) {
    		Map<String,Integer> map=new HashMap<>();
    		map.put("a",1);
    		map.put("c",3);
    		map.put("b",5);
    		map.put("f",7);
    		map.put("e",6);
    		map.put("d",8);
    		List<Map.Entry<String,Integer>> list=new ArrayList<>();
    		list.addAll(map.entrySet());
    		Test.ValueComparator vc=new ValueComparator();
    		Collections.sort(list,vc);
    		for(Iterator<Map.Entry<String,Integer>> it=list.iterator();it.hasNext();){
    			System.out.println(it.next());
    		}
    	}
        private static class ValueComparator implements Comparator<Map.Entry<String,Integer>>{
    		public int compare(Map.Entry<String,Integer> m,Map.Entry<String,Integer> n){
    			return n.getValue()-m.getValue();
    		}
    	}
    }
    

    更多相关内容
  • HashMap根据value排序

    千次阅读 2019-01-30 16:04:16
    HashMap通过valuevalue对象中的某个变量、对象进行排序,首先要将value取出保存在list里面 Collection&amp;amp;amp;lt;Student&amp;amp;amp;gt; c1 = m1.values(); List&amp;amp;amp;lt;Student&...

    将HashMap通过value或value对象中的某个变量、对象进行排序,首先要将value取出保存在list里面,这里以value为student对象为例

    //方法一:直接获取values集合
    	public static void sortByScore(Map<Integer, Student> m1) {
    		//获取map的value集合
    		Collection<Student> c1 = m1.values();
    		//将value集合存入list
    		List<Student> l1 = new ArrayList<Student>(c1);	
    		/*
    		 如果需要对每个数据做处理,可以使用迭代器遍历添加
    		List<Student> l1 = new ArrayList<Student>();
    		Iterator<Student> iter = c1.iterator();
    		Student s1 = new Student();
    		while(iter.hasNext()) {
    			s1 = iter.next();
    			s1.setId(11);
    			l1.add(s1);
    		}
    		*/
    		Collections.sort(l1,new Comparator<Student>() {
    			@Override
    			public int compare(Student o1, Student o2) {
    				//这里通过sroce排序
    				return o1.getSroce().compareTo(o2.getSroce());
    				//相当于return o1.getSroce()-o2.getSroce();
    			}
    		});
    	}
    
    //方法二:获取map的entry集合
    	public static void sort(Map<Integer, Student> m1) {
    		//获取map的entrySet集合
    		Set<Entry<Integer, Student>> es = m1.entrySet();
    		//将entry集合存入list
    		List<Entry<Integer, Student>> l1 = new ArrayList<>(es);
    		Collections.sort(l1, new Comparator<Entry<Integer, Student>>() {
    
    			@Override
    			public int compare(Entry<Integer, Student> o1, Entry<Integer, Student> o2) {
    				//通过获取entry的value(Student对象),再获取分数进行比较
    				return o1.getValue().getSroce().compareTo(o2.getValue().getSroce());
    			}
    
    		});
    	}
    
    展开全文
  • hashmap根据value值进行排序

    千次阅读 2021-03-31 13:57:01
    hashmap根据value值进行排序,首先将hashmap集合装进list集合中 List<Map.Entry<Character , Integer>> list = new ArrayList<>(map.entrySet()); 方法一:用Collections.sort()方法进行排序 ...

    hashmap根据value值进行排序,首先将hashmap集合装进list集合中

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

    方法一:用Collections.sort()方法进行排序

    (一)重写Collections.sort()的compare方法

    Collections.sort(list, new Comparator<Map.Entry<Character, Integer>>()
            {
                @Override
                public int compare(Map.Entry<Character, Integer> o1, Map.Entry<Character, Integer> o2) {
                    //按照value值升序
                    return o1.getValue() - o2.getValue();
                    //按照value值降序
                    //return o2.getValue() - o1.getValue();
                }
            });
    

    (二)Java 8之后也可以用增强版的Comparator

    Collections.sort(list, Comparator.comparingInt(Map.Entry::getValue));
    

    方法二:用list.sort()方法进行排序

    (一)重写list.sort()里的compare方法

    list.sort(new Comparator<Map.Entry<Character, Integer>>() {
                @Override
                public int compare(Map.Entry<Character, Integer> o1, Map.Entry<Character, Integer> o2) {
                    return o1.getValue() - o2.getValue();
                }
            });
    

    (二)或者直接用Lambda表达式进行比较

    list.sort((o1, o2) -> o1.getValue() - o2.getValue());//Lambda表达式
    

    (三)增强版Comparator

    list.sort(list, Comparator.comparingInt(Map.Entry::getValue));
    

    最后将结果进行排序输出

    for (Map.Entry<Character , Integer> c:list) {
                System.out.println(c.getKey() +" : " + c.getValue());
            }
    
    展开全文
  • import java.util.*; public class HashMapSort { public static void main... HashMap<Integer, Integer> map = new HashMap<>(); map.put(3, 2); map.put(4, 1); map.put(5, 4); map.put(6, 8);
    public class HashMapSort {
        public static void main(String[] args) {
            HashMap<Integer, Integer> map = new HashMap<>();
            map.put(6, 2);
            map.put(10, 1);
            map.put(3, 4);
            map.put(2, 8);
            map.put(19, 6);
            map.put(26, 4);
            map.put(15, 5);
            for(Map.Entry<Integer, Integer> entry : map.entrySet()){
                System.out.println(entry.getKey() + " = " + entry.getValue());
            }
            System.out.println("-----------------------------");
    
            // 将 map.entrySet() 转换成 list
            ArrayList<Map.Entry<Integer, Integer>> list = new ArrayList<>(map.entrySet());
            Collections.sort(list, new Comparator<Map.Entry<Integer, Integer>>() {
                @Override
                public int compare(Map.Entry<Integer, Integer> o1, Map.Entry<Integer, Integer> o2) {
                    return o1.getValue() - o2.getValue();
                }
            });
            for(Map.Entry<Integer, Integer> entry : list){
                System.out.println(entry.getKey() + " = " + entry.getValue());
            }
        }
    }
    

    运行结果:
    图示

    展开全文
  • HashMap根据value排序 (抄的)

    千次阅读 2020-06-23 17:06:04
    链接: HashMap根据value排序 需要用的时候copy来改一改 /** * hashMap排序 * @author lizhibiao * @date 2018/12/3 11:47 */ public class TestHashMapCollections { public static void main(String[] args)...
  • 要求:向HashMap集合中key位置加入姓名,value位置加入年龄,HashMap依据value排序。 public static <V> void main(String[] args) { //新建一个HashMap集合 HashMap<String, String> map = new ...
  • 加入一个函数解决java中hashmap按照value或key排序问题
  • Map<String, String> map = getMap(); List<Entry<String, String>...// 按value,从大到小排序 list.sort((o1, o2) -> Integer.parseInt(o2.getValue()) - Integer.parseInt(o1.getValue()));
  • HashMapValue排序

    2021-09-01 09:47:26
    1、hashmapvalue排序 //hashMap value 排序 public class demo3 { public static void main(String[] args) { HashMap map_Data = new HashMap(); map_Data.put("0", 90); map_Data.put("1", 50); map_Data....
  • HashMap根据value排序

    2018-12-03 19:24:00
    /** * hashMap排序 * @author lizhibiao * @date 2018/12/3 11:47 */public class TestHashMapCollections{ public static void main(String[] args) { Map<String, Integer> map = new HashMap<...
  • hashMap如何按照value排序

    千次阅读 2021-05-24 16:17:54
    某些特殊情况下,我们需要对map的value值进行排序输出,Map.Entry.comparingByValue()中已经为我们实现了按照值排序,实现代码如下: HashMap<String, String> map = new HashMap<String, String&g...
  • hashmap根据value排序

    万次阅读 2017-04-19 09:42:47
    public static void main... map = new HashMap&lt;String, Integer&gt;(); map.put("zhangsan", 10); map.put("lisi", 8); map.put("wangwu", 18); List&lt;En...
  • 可以对HashMap, HashSet, HashTable, LinkedHashMap, TreeMap, 甚至ConcurrentHashMap都可以排序。基本思路就是先拿到集合,可以用entrySet()方法得到。然后调用stream方法,里面就可以调用sort方法了。对Map的排序...
  • Java将Hashmap按照value的值进行排序

    千次阅读 2020-09-03 13:43:07
    Java将Hashmap按照value的值进行排序 我们会将普通的数组用Arrays.sort()方法进行排序。而我们对其他类型进行排序的时候,我们需要重载比较器,对接口进行重写其中的compare函数。我们可以使用匿名类来进行填写。...
  • HashMap如何按值value排序

    万次阅读 多人点赞 2019-01-24 17:06:15
    HashMap如何按值value排序简单介绍相关组件HashMapComparatorCollections.sort方法实现原理简介实现代码tips 简单介绍相关组件 HashMap 我们知道,HashMap是一个数组和链表组成的一种链表散列结构,存储方式是根据...
  • hashmap根据key和value的值排序

    千次阅读 2021-11-23 20:18:21
    本文总结hashmap分别根据key值和value排序的方法。 一、根据key排序 hashmap是无序的。 当所有key的hash的最大值<数组的长度-1时,HashMap可以将存入的元素按照key的hash从小到大排序。这个后期我会从源码的...
  • Java HashMap按照value排序的方法

    千次阅读 2021-11-23 15:59:13
    HashMapvalue值没有排序功能,若要进行较轻松的排序,可改写Comparator接口方法compare进行排序,代码如下: Map<String, Integer> map = new HashMap<String, Integer>(); map.put("d", 2); map.put...
  • 给你一个整数数组 arr 。请你将数组中的元素按照其二进制表示中数字 1 的数目升序排序。如果存在多个数字二进制中 1 的数目相同,则必须将它们按照数值大小升序排列。请你返回排序后的数组。... HashMap<Integer,
  • HashMap map_Data=new HashMap(); map_Data.put("A", "98"); map_Data.put("B", "50"); map_Data.put("C", "50"); map_Data.put("D", "25"); map_Data.put("E", "85"); System.out.println
  • HashMap按key排序或按value排序的方法

    千次阅读 2021-03-20 20:04:29
    // key=商品名称,value=价格,这里以这个例子实现按名称排序和按价格排序. Map store = new HashMap(); store.put("iphone12", 6799); store.put("iphone12pro", 8499); store.put("macbookPro", 19499); store.put...
  • 我们都知道,hashmap本身是无序的,不可能做到排序,但是有时候又要排序该怎么办呢? 既然hashmap不行,那么有没有那种map集合是有序的呢?当然有,linkedhashmap就是其中的一种 所以解决问题的思路就是将hashmap...
  • Java HashMap根据key或value进行排序

    千次阅读 2021-07-03 12:29:45
    Java HashMap根据key或value进行排序HashMap如何根据key进行排序HashMap如何根据value进行排序例题:leetcode算法题第451题 在之前的博客中,我介绍了Java中一些对于元素进行比较的方法,链接见: Java 自定义比较...
  • Java HashMapvalue进行排序

    千次阅读 2015-04-14 17:17:40
    程序代码: import java.util.ArrayList; import java.util.Collections; import java.util....import java.util.HashMap; import java.util.List; import java.util.Map; public class TestMapSort { /*
  • Java 让HashMap集合--按照value进行排序的方法分享
  • Map是键值对的集合接口,它的实现类主要包括:HashMap,TreeMap,Hashtable以及LinkedHashMap等。这篇文章主要介绍了Java Map 按照Value排序的实现方法,需要的朋友可以参考下
  • 按照ValueHashMap排序

    2021-03-08 09:26:01
    TreeMap基于红黑树排序的算法,默认数据put进来按照key的大小升序排序,如果需要改成按value排序,则自定义新的Comparator,重写compare(Object, Object)方法即可。看TreeMap的源码可知,它实现了AbstractMap类的put...
  • 实现对HashMapvalue进行排序

    千次阅读 2019-03-20 19:14:04
    如何对HashMap中的value值进行排序 关键点: 1.取HashMap的Map.Entry,放入List 2.利用Collections.sort(List, Comparator<? extents T>)进行排序 3.实现内部类Comparator,实现compare方法 代码: import ...
  • HashMapvalue排序

    2016-11-29 19:22:50
    import java.util.Comparator;...import java.util.HashMap; import java.util.LinkedHashMap; import java.util.LinkedList; import java.util.List; import java.util.Map; import java.util.Map.Entry; import java

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 116,161
精华内容 46,464
关键字:

hashmap根据value排序