ordenar valor de un mapa por el comparador con Java API de Secuencia

nimo23:

Tengo una Mapy quiero ordenar los valores por un Comparatorponiendo el resultado en una LinkedHashMap.

Map<String, User> sorted = test.getUsers()
                .entrySet()
                .stream()
                .sorted(Map.Entry.comparingByValue(SORT_BY_NAME))
                .collect(LinkedHashMap::new, (map, entry) -> map.put(entry.getKey(), entry.getValue()),
                        LinkedHashMap::putAll);
test.setUsers(sorted);

Todas las obras, sin embargo, me pregunto si esto se puede simplificar.

En realidad creo un nuevo Mapy poner ese nuevo Mapen el setUsers(). ¿Puedo cambiar la corriente directa sin necesidad de crear una nueva LinkedHashMap?

Con Collections.sort(Comparator), la lista está ordenada directamente. Sin embargo, Collections.sortno funciona con Mapas.

Leo Aso:

No se puede realizar en el lugar de clasificación en una colección que no admite la indexación de estilo de matriz, por lo que para los mapas que está fuera de la cuestión (excepto que utiliza algo así como una especie de selección en una LinkedHashMap, pero eso sería una mala idea). La creación de un nuevo mapa es inevitable. Todavía se puede simplificar, sin embargo, por la siguiente respuesta de shmosel.

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=315496&siteId=1
Recomendado
Clasificación