当前位置:网站首页>The entryset of map implements that maps are arranged in ascending order by key or descending order by value

The entryset of map implements that maps are arranged in ascending order by key or descending order by value

2022-06-10 07:25:00 zhangsan3333

TreeMap<Integer, Integer> Press key Ascending order

TreeMap<Integer, Integer> Press value Descending order

package MapTest;

import java.util.*;

public class Map4 {
    
    public static void main(String[] args) {
    

        TreeMap<Integer, Integer> treeMap = new TreeMap<>();
        treeMap.put(1, 310);
        treeMap.put(3, 310);
        treeMap.put(4, 539);
        treeMap.put(2, 420);
        ArrayList<Map.Entry<Integer, Integer>> list = new ArrayList<>(treeMap.entrySet());

        // Press key Ascending order 
        Collections.sort(list, new Comparator<Map.Entry<Integer, Integer>>() {
    
            @Override
            public int compare(Map.Entry<Integer, Integer> o1, Map.Entry<Integer, Integer> o2) {
    
                //o1-o2 Ascending order 
                return o1.getKey() - o2.getKey();
            }
        });

        for (Map.Entry<Integer, Integer> entry : list) {
    
            System.out.println(entry.getKey() + " " + entry.getValue());
        }
        System.out.println();
        // Press value Descending order 
        Collections.sort(list, new Comparator<Map.Entry<Integer, Integer>>() {
    
            @Override
            public int compare(Map.Entry<Integer, Integer> o1, Map.Entry<Integer, Integer> o2) {
    
                //o2-o1 Descending order 
                return o2.getValue() - o1.getValue();
            }
        });

        for (Map.Entry<Integer, Integer> entry : list) {
    
            System.out.println(entry.getKey() + " " + entry.getValue());
        }
    }
}


 Insert picture description here

Map<Integer, String[]> according to key Ascending order

package MapTest;

import java.util.*;
// according to key Ascending order 
public class Map4 {
    
    public static void main(String[] args) {
    
        HashMap<Integer, String[]> map = new HashMap<>();
        map.put(1, new String[]{
    "4536117005899"});
        map.put(3, new String[]{
    "3424342341666"});
        map.put(4, new String[]{
    "5536117001860"});
        map.put(2, new String[]{
    "2022032600001", "2022032600002", "2022032600003"});

        ArrayList<Map.Entry<Integer, String[]>> list = new ArrayList<>(map.entrySet());
        // Press key Ascending order 
        Collections.sort(list, new Comparator<Map.Entry<Integer, String[]>>() {
    
            @Override
            public int compare(Map.Entry<Integer, String[]> o1, Map.Entry<Integer, String[]> o2) {
    
                //o1-o2 Ascending order 
                return o1.getKey() - o2.getKey();
            }
        });

        for (Map.Entry<Integer, String[]> entry : list) {
    
            System.out.println(entry.getKey() + " " + Arrays.toString(entry.getValue()));
        }

    }
}


 Insert picture description here

Map<String, String> according to value Ascending order

package MapTest;

import java.util.*;

//## Map<String, String> according to value Ascending order 
public class Map5 {
    
    public static void main(String[] args) {
    
        Map<String, String> map = new HashMap<String, String>();
        map.put("b", "4");
        map.put("a", "5");
        map.put("c", "3");
        map.put("d", "5");

        // take map<String,String>  Turn into ArryList, but list The elements are Entry<String,String>
        List<Map.Entry<String, String>> list = new ArrayList<Map.Entry<String, String>>(map.entrySet());
        Collections.sort(list, new Comparator<Map.Entry<String, String>>() {
    
            @Override
            public int compare(Map.Entry<String, String> o1, Map.Entry<String, String> o2) {
    
                // Ascending order 
                int flag = o1.getValue().compareTo(o2.getValue());
                //value equal 
                if (flag == 0) {
    
                    return o1.getKey().compareTo(o2.getKey());
                }
                return flag;
            }
        });
        // Traverse list obtain map Sorted elements inside 
        for (Map.Entry<String, String> en : list) {
    
            System.out.println(en.getKey() + " " + en.getValue());
        }
    }
}

 Insert picture description here

原网站

版权声明
本文为[zhangsan3333]所创,转载请带上原文链接,感谢
https://yzsam.com/2022/161/202206100719539895.html