1.对map中的key进行正序排序
Map<Integer, String> map = Maps.newHashMap();// 原始map
LinkedHashMap<Integer, String> sortedMap= map.entrySet().stream().sorted(Map.Entry.comparingByKey())
// .collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue, (clashKey1, clashKey2) -> clashKey1, LinkedHashMap::new));
实例:
public static void main(String[] args) {
// 对map中的key进行正序排序
Map<Integer, String> map = Maps.newHashMap();
map.put(2, "2222222222222");
map.put(3, "3333333333333");
map.put(1, "11111111111111111");
map.put(4,"4444444444444444");
log.info("map={}", JSONObject.toJSONString(map));
LinkedHashMap<Integer, String> sortedMap = map.entrySet().stream().sorted(Map.Entry.comparingByKey()).
collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue, (clashKey1, clashKey2) -> clashKey1, LinkedHashMap::new));
log.info("sortedMap={}", JSONObject.toJSONString(sortedMap));
}
输出结果:
map={1:"11111111111111111",2:"2222222222222",3:"3333333333333",4:"4444444444444444"}
sortedMap={1:"11111111111111111",2:"2222222222222",3:"3333333333333",4:"4444444444444444"}
2.对map中的key进行倒序排序
Map<Integer,String> originalMap = Maps.newHashMap();// 原始map
LinkedHashMap<Integer,String> sortedMap= new LinkedHashMap<>();
Object[] array = originalMap.keySet().toArray(); Arrays.sort(array,Collections.reverseOrder());
for (int i = 0; i < array.length; i++) {
sortedMap.put((Integer) array[i],originalMap.get(array[i]));
}
实例:
public static void main(String[] args) {
Map<Integer,String> originalMap = Maps.newHashMap();
originalMap.put(2,"2222222222222");
originalMap.put(3,"3333333333333");
log.info("originalMap={}",JSONObject.toJSONString(originalMap));
LinkedHashMap<Integer,String> sortedMap= new LinkedHashMap<>();
Object[] array = originalMap.keySet().toArray();
Arrays.sort(array,Collections.reverseOrder());
for (int i = 0; i < array.length; i++) {
sortedMap.put((Integer) array[i],originalMap.get(array[i]));
}
log.info("linkedHashMap={}",JSONObject.toJSONString(sortedMap));
}
最后输出结果:
originalMap={1:"1111111111111",2:"2222222222222",3:"3333333333333"}
sortedMap={3:"3333333333333",2:"2222222222222",1:"1111111111111"}