1。理論的準備
マップは、キー価値ペアのコレクションインターフェイスです。その実装クラスには、主にHashmap、Treemap、Hashtable、Linkedhashmapが含まれます。
Treemap:使用されるコンストラクターに応じて、マッピングが作成されたときに提供されるコンパレータに基づいて、赤黒ツリーに基づいたNavigableMapの実装。
ハッシュマップの値は順調です。それらは、キーのハッシュコードに従って実装されます。この順序付けられていないハッシュマップのソートをどのように実装しますか? Treemapの価値を参照してください。
Map.Entryはコレクションビューを返します。
2。キーソート
Treemapはデフォルトで昇順です。ソートメソッドを変更する必要がある場合は、コンパレータを使用する必要があります:コンパレータ。コンパレータは、コレクションオブジェクトまたは配列をソートし、次のようにソートを実現するために、このインターフェイスのパブリック比較(T O1、TO2)メソッドを実装できます。
java.util.comparator; Import java.util.iterator; import java.util.map; import java.util.set; import java.util.treemap; public static void main(string [] args){Map <String> String> Map = New Treemap <String、String> Comparter>(Compart obs>(Compart obs>) obj2){//降順でsort obj2.compareto(obj1)}; map.put( "b"、 "cccccc"); map.put( "d"、 "aaaaa"); map.put( "c"、 "bbbbb"); map.put( "a"、 "ddddd"); <string> keyset = map.keyset()を設定します。 iterator <string> iter = keyset.iterator(); while(iter.hasnext()){string key = iter.next(); System.out.println(key + ":" + map.get(key)); }}}操作結果は次のとおりです。
D:AAAAAC:BBBBBB:CCCCCA:DDDDDD
3。値の並べ替え
上記の例は、Treemapの重要な値に従ってソートすることですが、Treemapの値に応じてソートする必要がある場合があります。値を並べ替えるには、指定されたコンパレータによって生成された順序に従って指定されたリストをソートするソート(リスト<t>リスト、コンパレータ<?super t> c)メソッドを使用する必要があります。しかし、前提条件があります。つまり、次のように、提供されたコンパレータに基づいてすべての要素を比較できる必要があります。
java.util.arraylist; Import java.util.collections; import java.util.comparator; import java.util.list; import java.util.map; import java.util.util.util.treemap; public class {public static ilemaptest {<<cring> public static ilemaptest treemap <string、string>(); map.put( "a"、 "dddddd"); map.put( "c"、 "bbbbbbb"); map.put( "d"、 "aaaaa"); map.put( "b"、 "cccccc"); //ここにmap.entryset()をリストリストに変換します<map.entry <string、string >> list = new arraylist <map.entry <string、string >>(map.entryset()); //コンパレータを使用してソートコレクションを実装します(リスト、new Comparator <map.entry <string、string >>(){// public int compare(entr <string、string> o1、entr <string、string> o2){return o1.getvalue()。比較(o2.getvalue();}); for(map.entry <string、string> mapping:list){system.out.println(mapping.getKey()+":"+mapping.getValue()); }}}操作結果は次のとおりです。
D:AAAAAC:BBBBBB:CCCCCA:DDDDDD
上記のJavaマップキーとバリューの実装方法によるソートは、私があなたと共有するすべてのコンテンツです。参照を提供できることを願っています。wulin.comをもっとサポートできることを願っています。