JDK8 usa la secuencia para ordenar el mapa por clave y valor

package com.ws.ldy.common.utils;

import com.google.common.collect.Maps;

import java.util.Map;

/**
 * jdk 8 排序工具类
 * @author wangsong
 * @mail [email protected]
 * @date 2020/9/14 0014 14:19
 * @version 1.0.0
 */
public class Java8MapSort {

    /**
     * 根据map的key排序
     *
     * @param map 待排序的map
     * @param isDesc 是否降序,true:降序,false:升序
     * @return 排序好的map
     * @author zero 2019/04/08
     */
    public static <K extends Comparable<? super K>, V> Map<K, V> sortByKey(Map<K, V> map, boolean isDesc) {
        Map<K, V> result = Maps.newLinkedHashMap();
        if (isDesc) {
            map.entrySet().stream().sorted(Map.Entry.<K, V>comparingByKey().reversed())
                    .forEachOrdered(e -> result.put(e.getKey(), e.getValue()));
        } else {
            map.entrySet().stream().sorted(Map.Entry.<K, V>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 <K, V extends Comparable<? super V>> Map<K, V> sortByValue(Map<K, V> map, boolean isDesc) {
        Map<K, V> result = Maps.newLinkedHashMap();
        if (isDesc) {
            map.entrySet().stream().sorted(Map.Entry.<K, V>comparingByValue().reversed())
                    .forEach(e -> result.put(e.getKey(), e.getValue()));
        } else {
            map.entrySet().stream().sorted(Map.Entry.<K, V>comparingByValue())
                    .forEachOrdered(e -> result.put(e.getKey(), e.getValue()));
        }
        return result;
    }
}

  • Proyecto personal de código abierto (sistema de gestión de fondo universal) -> https://gitee.com/wslxm/spring-boot-plus2 , puede consultarlo si lo desea

  • Este es el final de este artículo. Si lo encuentra útil, por favor, haga clic en Me gusta o preste atención. Continuaremos actualizando más contenido de vez en cuando ... ¡Gracias por mirar!

Supongo que te gusta

Origin blog.csdn.net/qq_41463655/article/details/108579033
Recomendado
Clasificación