どのように文字列の最後の文字でソートするJavaのコンパレータを使用するには?

user22261:

私は、インベントリマップを持っていると言います。

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

そして、私はコンパレータでこれを行うだろうか、文字列の最後の文字で在庫をソートしたいですか?それは空の文字列だかどうかはどのようにエラーを処理するのでしょうか?

私はpero_hero:

あなたは、単純なコンパレータを定義することができます。

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

そして、あなたはそのコンパレータとツリーマップをインスタンス化することができます:

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

この出力を取得するには:

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

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=343593&siteId=1