Cómo utilizar Java comparador para ordenar por último carácter de la cadena?

user22261:

Decir que tengo un mapa de inventario:

Map<String, Integer> inventory = new TreeMap<>()

y quiero ordenar el inventario por el último carácter de la cadena, ¿cómo voy a hacer esto con un comparador? ¿Cómo voy a manejar los errores si es una cadena vacía?

pero_hero :

puede definir un comparador simple:

 Comparator<String> comp = Comparator.comparing(s -> s.length() > 0 ? s.substring(s.length()-1) : "");

entonces se puede crear una instancia de un mapa de árbol con el que comparador:

 Map<String, Integer> map = new TreeMap<>(comp);
    map.put("xxxa", 11);
    map.put("pppb", 2);
    map.put("lllc", 3);
    map.put("iiid", 3);

para obtener este resultado:

{xxxa=11, pppb=2, lllc=3, iiid=3}

Supongo que te gusta

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