美文网首页
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

    将下列数据升序排列:{3:"cc", 1:"aa", 22:"dd", 2:"bb"}得到如下结果:{1:"aa"...

  • java-Map相关方法

    一、map转化list、 二、遍历map 三、根据map的key排序 输出:排序之前:[1=一, 2=二, 3=三...

  • map中排序

    map实现根据key值排列,必须先用切片取出key所有值,排序后,再从map中获取值 一、代码、、、package...

  • lambda HashMap 排序

    TreeMap 按key排序生成map可以有TreeMap 完成,TreeMap可以按key的自然顺序排序(Com...

  • c++中map和unorderedmap与java中hashma

    c++中map底层直接是一颗红黑树所以输入进map的key会自动排序,挨个遍历key的话也是按照排序后的key依次...

  • STL关联容器map

    map特点 不允许有重复的key,根据key排序 map用法 insert方法几种用法: 插入一个元素 插入一个r...

  • MAP

    map自定义排序 map自带的排序时根据键值key自小而大进行,而有些时候需要根据键值自定义,比如由大到小等; 注...

  • Protobuf 3完整示例

    map使用注意事项: key_type 可以是任何 int 或者 string 类型(任何的标量类型,具体可以见上...

  • Map根据Value排序

    说到Map排序,大家第一时间想到的是,利用现成的TreeMap,它会自动根据Map的Key进行排序。但是如果要按照...

  • C++ map常用接口

    查找key是否存在 排序 map本身是按key排序存储的,如果想使用自定的排序规则可以传入第三参数 如果希望使用v...

网友评论

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

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