処理のためのユニークな値のマップ内の属性一覧<地図>のための方法

パッケージtop.dszy.test.java8。


輸入 java.utilの。* ;
輸入java.util.stream.Collectors。

パブリック クラスTest1を{ 

    公共 静的 ボイドメイン(文字列[]引数){ 

        リスト <のLinkedHashMap <文字列、オブジェクトリスト>> = 新規のArrayList <> (); 
        list.add(新規のLinkedHashMap <文字列オブジェクト> (){{ 
            プット( "ID"、 "A" ); 
            (プット "年齢"、 "13" ); 
            (プット "性別"、 "男" ); 
        }} ); 
        リスト。LinkedHashMap <文字列オブジェクト> (){{ 
            プット( "ID"、 "A" )。
            プット( "年齢"、 "14" ); 
            プット( "性別"、 "男" )。
        }})。
        list.add(新規のLinkedHashMap <文字列オブジェクト> (){{ 
            プット( "ID"、 "B" ); 
            (プット "年齢"、 "14" ); 
            (プット "性別"、 "男" ); 
        }} ); 
        list.add(新しいのLinkedHashMap <文字列、オブジェクト> (){{ 
            プット( "ID"、 "C" )。
            プット( "年齢"、 "14"); 
            プット( "性別"、 "男" )。
        }})。
        list.add(新規のLinkedHashMap <文字列オブジェクト> (){{ 
            プット( "ID"、 "" ); 
            (プット "年齢"、 "14" ); 
            (プット "性別"、 "男" ); 
        }}) ; 
        list.add(新しいのLinkedHashMap <文字列、オブジェクト> (){{ 
            プット( "ID"、 "C" ); 
            (置く "年齢"、 "14" ); 
            (置く "性別"、 "男" )。
        }})。


        handleRepeatPrimaryKey(リスト、 "ID" );
        リスト <のLinkedHashMap <文字列、オブジェクト>> hasList = 新しい ArrayListを<> (); 
        hasList = list.stream()フィルタ- (!X> x.get( "ID")をのtoString()に等しい( ""。。 ()(Collectors.toList)を収集))。
        リスト <のLinkedHashMap <文字列、オブジェクト>> notHasList = 新しい ArrayListを<> (); 
        notHasList。 - (> x.get( "ID")のtoString()に等しい( "" X = list.stream()フィルタ;))を収集(Collectors.toList())。

        System.out.println(hasList)。
        System.out.println(notHasList)。



    } 


    パブリック 静的リスト<のLinkedHashMap <文字列、オブジェクト>>リスト、文字列ID){ 
        リスト <のLinkedHashMap <文字列オブジェクト>> itemListの= 新規のArrayList <> ();
        (のLinkedHashMap <文字列、オブジェクト> LHM:リスト){
             場合(itemList.size()== 0 ){ 
                itemList.add(LHM)。
            } { 
                反復子 <のLinkedHashMap <文字列オブジェクト>>反復子= itemList.listIterator()。
                一方、(listIterator.hasNext()){
                     場合(listIterator.next()。得る(ID).toString()。等号(lhm.get(ID).toString())){ 
                        lhm.put(ID、 ""
                    } { 
                        listIterator.add(LHM)。
                    } 
                } 
            } 
        } 
        戻り値のリスト。
    } 
}

繰り返し処理の主キーは、最初の残りの主キーは空白になって取り、ああ、私はニーズを満たすことができます。私はより良い方法はありませんか分からないのですか?

おすすめ

転載: www.cnblogs.com/rongyao/p/11261601.html