地図値は値に応じてグループ化されています

    今日では、同僚が私の最初の考えは、値及び鍵交換であるとし、グループ内のマップ値に応じてグループ化する方法を尋ね満たさ
次のようにコードの組に対応する異なるキー複数の値は
1
2
地図の<string、整数> =新しい新しいSataMapのHashMap <>();
        最終地図<整数、リストの<string >>新しい新しい= GROUPMAPのHashMap <>();
        SataMap.put( "A" ,. 1);
        SataMap.put( "B" ,. 3 );
        SataMap.put( "C"、2);
        SataMap.put( "D" ,. 4);
        SataMap.put( "E"、2);
        SataMap.put( "F" ,. 4);
        SataMap.put( "G" ,. 3);
        SataMap.put( "H"、2);
        のSystem.out.println(結果);
        SataMap.forEach(新しい新しいBiConsumer <文字列、整数>(){
            @Override
            公共ボイドは(文字列キー、整数値)を受け入れます{
                IF(groupMap.containsKey(値)){
                    groupMap.get(値)(キー).add。
                }他{
                    リストの<string>値=新しいのArrayList <>();
                    values.add(キー);
                    groupMap.put(値、値)。
                }
            }
        })。


結果はすぐに、より良い方法を見つけるために顔を殴られ、そして私の同僚

マップのMap.Entry <文字列、整数>>> SataMap.entrySet結果=()ストリーム()コレクトの<整数、一覧<(Collectors.groupingBy(C - > c.getValue())); ..
1。
マップに変換されその後、エントリの収集、およびパケットモードのセットを使用し、この機能を達成するために簡単です
 

公開された776元の記事 ウォン称賛50 ビュー15万+

おすすめ

転載: blog.csdn.net/weixin_44018338/article/details/104984394
おすすめ