本文共 1845 字,大约阅读时间需要 6 分钟。
package com.drew.test;import java.util.List;import java.util.Map;import com.google.common.collect.ImmutableMap;import com.google.common.collect.Lists;import com.google.common.collect.Maps;/** * @author zero 2019/04/08 */public class Java8future { public static void main(String[] args) { Mapmap = ImmutableMap.of("0", 3, "1", 8, "0.29", 7, "1.67", 3); System.out.println("原始的map:" + map); System.out.println("根据map的key降序:" + sortByKey(map, true)); System.out.println("根据map的key升序:" + sortByKey(map, false)); System.out.println("根据map的value降序:" + sortByValue(map, true)); System.out.println("根据map的value升序:" + sortByValue(map, false)); } /** * 根据map的key排序 * * @param map 待排序的map * @param isDesc 是否降序,true:降序,false:升序 * @return 排序好的map * @author zero 2019/04/08 */ public static , V> Map sortByKey(Map map, boolean isDesc) { Map result = Maps.newLinkedHashMap(); if (isDesc) { map.entrySet().stream().sorted(Map.Entry. comparingByKey().reversed()) .forEachOrdered(e -> result.put(e.getKey(), e.getValue())); } else { map.entrySet().stream().sorted(Map.Entry. comparingByKey()) .forEachOrdered(e -> result.put(e.getKey(), e.getValue())); } return result; } /** * 根据map的value排序 * * @param map 待排序的map * @param isDesc 是否降序,true:降序,false:升序 * @return 排序好的map * @author zero 2019/04/08 */ public static > Map sortByValue(Map map, boolean isDesc) { Map result = Maps.newLinkedHashMap(); if (isDesc) { map.entrySet().stream().sorted(Map.Entry. comparingByValue().reversed()) .forEach(e -> result.put(e.getKey(), e.getValue())); } else { map.entrySet().stream().sorted(Map.Entry. comparingByValue()) .forEachOrdered(e -> result.put(e.getKey(), e.getValue())); } return result; }}
转载地址:http://gtwci.baihongyu.com/