HashMapのストレージが注文したが、ハッシュコードのキーに合わせて実現されていません。
キーはソートこの例の名前で、ここと並び替え価格で実現するために携帯電話のブランド、価値=価格を、=。
地図電話= 新HashMapの(); phone.put( "アップル"、8899 ); phone.put( "SAMSUNG"、7000 ); phone.put( "Meizuの"、2698 ); phone.put( "小米科技"、1800年); System.out.println(電話);
直接出力HashMapのは(その順序でArrayListのないリザーバー型)順不同の地図を入手しました
キー1.ソート
ソート名の()には、最初に社債のHashMapの中にセット(のkeySet)を取得しなければならない、とは、Arrays.sortによってソートするために、配列に変換しました
セットセット= phone.keySet()。 オブジェクト[] ARR = set.toArray()。 (ARR)は、Arrays.sort。 用(オブジェクトキー:ARR){ System.out.printlnは(キー)。 }
ソートされたキーを取得
最後HashMap.get(キー)を与えるために、キー値に対応します
用{(ARRオブジェクトキー) のSystem.out.println(キー + ":" + phone.get(キー))。 }
印刷の結果
値2.ソート
ソート価格は、必要性は、マッピング関係を含むビューのHashMap(のentrySet)の最初であることが
示されているよう。
entrySetコンバートリスト、およびコンパレータを書き換え、ここではlist.sort(コンパレータ)を使用することができます比較し、また、Collections.sort(リスト、コンパレータ)を使用することができます
リストに変換
リスト<のMap.Entry <文字列、整数>>一覧= 新しいのArrayList <のMap.Entry <文字列、整数>>(phone.entrySet()); // 转换为リスト
並べ替えに使用さはlist.sort()
list.sort(新しいコンパレータ<のMap.Entry <文字列、整数>> (){ @Override 公共 int型の比較(のMap.Entry <文字列、整数> O1、のMap.Entry <文字列、整数> O2){ リターンo2.getValue ().compareTo(o1.getValue()); } })。
並べ替えに使用Collections.sort()
Collections.sort(リスト、新しいコンパレータ<のMap.Entry <文字列、整数>> (){ @Override 公共 int型の比較(のMap.Entry <文字列、整数> O1、のMap.Entry <文字列、整数> O2){ 戻りO2以降.getvalue()のcompareTo(o1.getValue()); } })。
二つの方法は、結果の出力を
// ため循环 ため(INT I = 0、I <はlist.size(); I ++ ){ System.out.printlnは(list.get(I).getKey() + ":" + list.get(I)。 getValue())。 } // ため、各循环 ため(のMap.Entry <文字列、整数> マッピング:リスト){ System.out.printlnは(mapping.getKey() + ":" + mapping.getValue())。 }
トラバーサルプリントアウト
// のため のための(INT iが= 0; I <はlist.size(); I ++ ){ System.out.printlnは(list.get(I).getKey() + ":" + list.get(I)以降.getvalue ())。 } のSystem.out.println(); // ため、それぞれ のため(のMap.Entry <文字列、整数> マッピング:リスト){ System.out.printlnは(mapping.getKey() + ":" + mapping.getValue())。 }
結果