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

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

使用时调用的排序方法:

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

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

public class KeyCompareUtil implements Comparator{

    /**
     * 
     *  从小到大排序  
     * @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)