JavaのHashMapのはキーでソートし、2つの簡単な方法が値によってソート

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())。
        }

結果

おすすめ

転載: www.cnblogs.com/chenchen127/p/12169904.html