map的排序总结

简介: 1、按键排序使用treemap按照键来排序@Test     public void treeMap(){                //传入的比较器只能根据key来排序,TreeMap如不指定排序器,默认将按照key值进行升序排序        //指定排序器按照key值降序排列 ,        //Comparator中泛型必须传入key类型的的超类TreeMap(C

1、按键排序


使用treemap按照键来排序

@Test 
    public void treeMap(){
        
        //传入的比较器只能根据key来排序,TreeMap如不指定排序器,默认将按照key值进行升序排序
        //指定排序器按照key值降序排列 ,
        //Comparator中泛型必须传入key类型的的超类TreeMap(Comparator<? super K> comparator) 

        TreeMap<String, Integer> treeMap=new TreeMap<String, Integer>(new Comparator<Object>() {

            @Override
            public int compare(Object o1, Object o2) {
                return o2.hashCode()-(o1.hashCode());
                
                //如果key是String类型   return o2.compareTo(o1);
            }
        }) ;
        treeMap.put("2", 1);  
        treeMap.put("b", 1); 
        treeMap.put("1", 1);  
        treeMap.put("a", 1);  
        System.out.println("treeMap="+treeMap);  
    
    }



 2、按值排序

/**
     * @see map排序
     * @param oriMap
     * @return
     */
    public static Map<String, Integer> sortMapByValue(Map<String, Integer> oriMap) {
        Map<String, Integer> sortedMap = new LinkedHashMap<String, Integer>();
        if (oriMap != null && !oriMap.isEmpty()) {
            List<Map.Entry<String, Integer>> entryList = new ArrayList<Map.Entry<String, Integer>>(oriMap.entrySet());
            Collections.sort(entryList, new Comparator<Map.Entry<String, Integer>>() {
                @Override
                public int compare(Entry<String, Integer> o1, Entry<String, Integer> o2) {
                    return o2.getValue() - o1.getValue();
                }
            });
            Iterator<Map.Entry<String, Integer>> iter = entryList.iterator();
            Map.Entry<String, Integer> tmpEntry = null;
            while (iter.hasNext()) {
                tmpEntry = iter.next();
                sortedMap.put(tmpEntry.getKey(), tmpEntry.getValue());
            }
        }
        return sortedMap;
    }


本文出自 “点滴积累” 博客,请务必保留此出处http://tianxingzhe.blog.51cto.com/3390077/1763107

目录
相关文章
|
7月前
|
开发框架 .NET
list 去重
list 去重
|
3月前
|
C++
c++ set、map的四种自定义排序方法
c++ set、map的四种自定义排序方法
80 0
|
6月前
|
存储 自然语言处理 数据可视化
按Value对Map进行排序,技术大佬们都在用这个方法
在Java中,Map的排序一般会根据Key或者Value来进行。按照Value对Map进行排序,通常会用在以下几种场景。
|
8月前
Map的遍历和Map的有序和无序
Map的遍历和Map的有序和无序
48 0
|
Shell
List集合如何去重?
将 l i s t 集 合 放 入 L i n k e d H a s h S e t 集 合 中 , 然 后 再 重 新 添 加 到 l i s t 集 合 中 。 \color{#FF0000}{将list集合放入LinkedHashSet集合中,然后再重新添加到list集合中。}将list集合放入LinkedHashSet集合中,然后再重新添加到list集合中。
80 0
List集合如何去重?
|
Go 开发者
map 排序 | 学习笔记
快速学习 map 排序
74 0
map 排序 | 学习笔记
对List<Map>数据排序
原始数据 排序规则 MapCompare类 具体代码 多重条件排序时 排序后结果
List<Map> 进行求和
public class Main { public static void main(String[] args) { List lists = new ArrayList(10); Map m1 = new HashMap(16); m1.
1610 0
|
C# .NET 开发框架
【C#】list 去重
原文:【C#】list 去重   Enumerable.Distinct 方法 是常用的LINQ扩展方法,属于System.Linq的Enumerable方法,可用于去除数组、集合中的重复元素,还可以自定义去重的规则。
5382 0