マップは、キー価値ペアのコレクションインターフェイスです。その実装クラスには、主にHashmap、Treemap、Hashtable、Linkedhashmapが含まれます。
•Treemap:使用されるコンストラクターに応じて、マップを作成するときに提供されるキーの自然な順序またはコンパレータに並べ替えられる赤ブラックツリーに基づくNavigableMapの実装。
•ハッシュマップ値は順調で、キーのハッシュコードに従って実装されます。この順序付けられていないハッシュマップのソートをどのように実装しますか? Treemapの価値を参照してください。
Map.Entryはコレクションビューを返します。
キーでソートします
Treemapはデフォルトで昇順です。ソートメソッドを変更する必要がある場合は、コンパレータを使用する必要があります:コンパレータ。コンパレータは、コレクションオブジェクトまたは配列のコンパレータインターフェイスをソートし、このインターフェイスのパブリック比較(T O1、TO2)メソッドを実装して、ソートを実現できます。
注:次のすべてのコードはJDK1.6でテストされています
Treemapは、デフォルトで昇順でソートされます
public static void keyupsort(){//デフォルトでは、treemapはkeymap <string、integer> map = new treemap <string、map.put( "acb1"、5); map.put( "bac1"、3); map.put( "bca1"、cab1 "" cab1 "" bca1 "" cab1 pupput( "cap 1); map.put( "abc1"、10); map.put( "abc2"、12); //デフォルトでは、treemapは昇順でキーをソートします System.out.println("----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------Treemapの並べ替え方法を変更し、キーを降順でソートする
public static void keydownsort(){// treemap、下降順序でソート//降順で並べ替えます。 treemap <string、integer>(keycomparator); map.put( "acb1"、5); map.put( "bac1"、3); map.put( "bca1"、20); map.put( "cab1"、80); map.put( "cba1"、1); map.put( "abc1"、abc2 " 12); system.out.println( "----------- treemap値でソートします
以下は、昇順でTreemapによるソートのみを示しており、Hashmapにも同じことが当てはまります。
Treemapの並べ替え方法を変更し、昇順の価値で並べ替えます
注:通常の状況では、コレクションを使用してマップをソートすることはできませんが、ソート前にマップをリストに変換できます。
public static void valueUpSort() {// By default, TreeMap is sorted in ascending order by key Map<String, Integer> map = new TreeMap<String, Integer>();map.put("acb1", 5);map.put("bac1", 3);map.put("bca1", 20);map.put("cab1", 80);map.put("cba1", 1); map.put( "abc1"、10); map.put( "abc2"、12); //昇順コンパレーター比較<map.entry <string、integer >> valuecomparator = new Comparator <map.entry <string、integer >>(){@overridepublic int(Entry <string、integer o1、integer> o1、integer>自動生成メソッドStubreturn O1.getValue() - O2.getValue();}}; //並べ替えリストのリストにマップを変換<Map.entry <string、integer >> list = new arraylist <map.entry <string、integer >>(map.entryset());昇順 System.out.println("-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------テスト結果
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
上記は、編集者によって導入された値に応じたJavaマップソートの実装方法です。私はそれが誰にでも役立つことを願っています。ご質問がある場合は、メッセージを残してください。編集者は、すべての人に時間内に返信します。 wulin.comのウェブサイトへのご支援ありがとうございます!