首页 > 技术文章 > Map集合排序

wust221 2016-04-20 21:49 原文

去重之后的Map进行排序,因为Map中key存储的是时间撮,可以直接使用treeMap进行排序,只需要重写compare函数
public static Map<Integer,String> SortMap(Map<Integer,String> map){
  Map<Integer,String> result_map = new TreeMap<Integer,String>(new Comparator<Integer>{//构建一个TreeMap集合,设定排序方式是对key进行排序
    public int compare(Integer key1,Integer key2){
      return key1.hashCode()-key2.hashCode();
    }
  });
  result_map.putAll(map);
  return result_map;
}

TreeMap的putAll方法:就是将一个Map<Integer,String>中的所有映射关系(key-value)全部复制到 TreeMap<Integer,String>里面去,不过放进去的时候需要根据compare进行一个比较排序

 

java.util.TreeMap包里面的

putAll(Map<? extends K,? extends V> map) 方法用于所有从指定映射中的映射关系复制到此映射。这些映射关系将替换此映射的所有当前指定映射中键的所有映射关系。

声明

以下是java.util.TreeMap.putAll()方法的声明。

public void putAll(Map<? extends K,? extends V> map)

参数

  • map-- 这是将要存储在此映射的映射。

返回值

NA

异常

  • ClassCastException-- 如果类指定映射中的键或值不允许将其存储在此映射抛出此异常。

  • NullPointerException-- 如果指定映射为null,或者指定映射包含null键,而此映射不允许null键,将抛出此异常。

推荐阅读