ホームページ  >  記事  >  Java  >  Java はマップのキーをソートできますか?

Java はマップのキーをソートできますか?

(*-*)浩
(*-*)浩オリジナル
2019-11-19 11:52:552127ブラウズ

Java はマップのキーをソートできますか?

Map はキーと値のペアのコレクション インターフェイスであり、その実装クラスには主に HashMap、TreeMap、Hashtable、LinkedHashMap などが含まれます。 (推奨学習: java コース )

TreeMap: 赤黒ツリー (赤黒ツリー) に基づく NavigableMap の実装。マップはキーの自然な順序に従ってソートされます。またはマップの作成に基づいて提供される Comparator は、使用されるコンストラクターに応じてソートされます。

Map.Entry はコレクション ビューを返します。

キー ソート

ツリーマップはデフォルトでは昇順になっています。ソート方法を変更する必要がある場合は、コンパレータを使用する必要があります: Comparator。 Comparator は、コレクション オブジェクトまたは配列を並べ替えることができるコンパレータ インターフェイスです。このインターフェイスの public Compare(To1, To2) メソッドを実装すると、次のように並べ替えを実現できます:

import java.util.Comparator;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
import java.util.TreeMap;
public class TreeMapTest {
    public static void main(String[] args) {
        Map<String, String> map = new TreeMap<String, String>(
                new Comparator<String>() {
                    public int compare(String obj1, String obj2) {
                        // 降序排序
                        return obj2.compareTo(obj1);
                    }
                });
        map.put("b", "ccccc");
        map.put("d", "aaaaa");
        map.put("c", "bbbbb");
        map.put("a", "ddddd");
        
        Set<String> keySet = map.keySet();
        Iterator<String> iter = keySet.iterator();
        while (iter.hasNext()) {
            String key = iter.next();
            System.out.println(key + ":" + map.get(key));
        }
    }
}

実行結果は次のとおりです。 :

d:aaaaa
c:bbbbb
b:ccccc
a:ddddd

以上がJava はマップのキーをソートできますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。