map的排序总结

原创 2016年08月28日 14:10:46

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

版权声明:本文为博主原创文章,未经博主允许不得转载。

Map<String, Double>实现对value的降序排序

import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; import jav...
  • qinchao2011
  • qinchao2011
  • 2017年04月08日 20:20
  • 2037

搜狗面试的经典题(C++map按值排序,class struct的区别)

一:起因 (1)java  Map排序(key,value),请看另一篇博客 java Map排序  (2)c++ map排序(key,value),可以对c++ map和java Map进行对比:之...
  • u010700335
  • u010700335
  • 2014年11月16日 10:33
  • 2060

【Mapreduce】排序与降序

Mapreduce在Map与Reduce之间的处理,会对Key进行升序排序,如果这个Key是Text类型则是按Key的首字母进行升序排序的,如果Key是IntWritable类型,则按大小进行升序排序...
  • yongh701
  • yongh701
  • 2016年01月28日 16:27
  • 4010

MapReduce排序过程详解

Hadoop、Spark等分布式数据处理框架在宣传自己的性能时大都以排序效果来做比较,各种类别的Sort Benchmark已成为行业基准测试。之所以选择排序是因为排序的核心是shuffle操作,数据...
  • zr459927180
  • zr459927180
  • 2016年04月26日 11:38
  • 5353

Java Map排序

  • 2018年01月10日 16:12
  • 491B
  • 下载

Java集合排序及java集合类详解(Collection、List、Map、Set)

  • 2012年07月19日 17:15
  • 314KB
  • 下载

java中Map集合的排序方法

  • 2016年06月15日 13:45
  • 747B
  • 下载

java map实例,排序

  • 2015年01月31日 12:14
  • 12KB
  • 下载

对Map的key和value进行排序

  • 2015年01月31日 12:12
  • 18KB
  • 下载

对Map按key和value分别排序

  • 2014年08月16日 12:48
  • 16KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:map的排序总结
举报原因:
原因补充:

(最多只允许输入30个字)