先定义map
Map<Integer,Integer> map = Maps.newHashMap(); map.put(2,11); map.put(1,33); map.put(3,22);
按key降序排序
//注意:此处初始化map时,若定义为Maps.newHashMap();会使排序失效。因HashMap本身结构是不具备排序的 Map<Integer,Integer> descOrderKeyMap = Maps.newLinkedHashMap(); map.entrySet().stream().sorted(Map.Entry.<Integer,Integer>comparingByKey().reversed()).forEachOrdered(e->descOrderKeyMap.put(e.getKey(),e.getValue())); log.info("按key降序排序:{}",descOrderKeyMap);
按key升序排序
Map<Integer,Integer> ascOrderKeyMap = Maps.newLinkedHashMap(); map.entrySet().stream().sorted(Map.Entry.comparingByKey()).forEachOrdered(e->ascOrderKeyMap.put(e.getKey(),e.getValue())); log.info("按key升序排序:{}",ascOrderKeyMap);
按value降序排序
Map<Integer,Integer> descOrderValueMap = Maps.newLinkedHashMap(); map.entrySet().stream().sorted(Map.Entry.<Integer,Integer>comparingByValue().reversed()).forEachOrdered(e->descOrderValueMap.put(e.getKey(),e.getValue())); log.info("按value降序排序:{}",descOrderValueMap);
按value升序排序
Map<Integer,Integer> ascOrderValueMap = Maps.newLinkedHashMap(); map.entrySet().stream().sorted(Map.Entry.comparingByValue()).forEachOrdered(e->ascOrderValueMap.put(e.getKey(),e.getValue())); log.info("按value升序排序:{}",ascOrderValueMap);
结果如下: