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"}