美文网首页
Map排序 根据key排序,key可以是int或string

Map排序 根据key排序,key可以是int或string

作者: 简陌刀丶阿吉 | 来源:发表于2019-09-25 13:42 被阅读0次

    将下列数据升序排列:
    {3:"cc", 1:"aa", 22:"dd", 2:"bb"}
    得到如下结果:
    {1:"aa", 2:"bb", 3:"cc", 22:"dd"}
    上面map中的value可以是任意类型。

    使用时调用的排序方法:

    /**
     * 
     * <b>Description:</b><br>对map利用key进行排序 
     * @param map
     * @return
     * @Note
     * <b>Author:</b> 简陌刀丶阿吉
     * <br><b>Date:</b> 2019年8月27日 上午11:06:32
     * <br><b>Version:</b> 1.0
     */
    public static Map<String, Object> sortMapByKey(Map<String, Object> map) {
        if (map == null || map.isEmpty()) {
            return null;
        }
        Map<String, Object> sortMap = new TreeMap<String, Object>(new KeyCompareUtil());
        sortMap.putAll(map);
        return sortMap;
    }
    

    排序方法中用到的比较器类:可以按照string排序,也可以按照int排序,修改compare方法就行

    public class KeyCompareUtil implements Comparator<String>{
    
        /**
         * 
         *  从小到大排序  
         * @see java.util.Comparator#compare(java.lang.Object, java.lang.Object)
         */
        @Override
        public int compare(String s1, String s2) {
            return Integer.valueOf(s1).compareTo(Integer.valueOf(s2));  
        }
    }
    

    相关文章

      网友评论

          本文标题:Map排序 根据key排序,key可以是int或string

          本文链接:https://www.haomeiwen.com/subject/lttkuctx.html