大きく二つのケースに分け重複除外リスト値のJavaオブジェクト、一つはリストの<string>は、そのようなリスト<整数>は、直接重量にリストの値に応じて、他のリストである<ユーザー>この、JavaBeanのリストは、オブジェクトに格納され、我々はリストオブジェクトまたは複数の値に応じた値の量と比較する必要があります。ここに方法は次のとおりです。
、リスト<文字列>、一覧<整数>重複排除の目標値。
これは、プロセスが比較的単純で、新機能の流れが明確なメソッドをJDK1.8、それが直接処理することができそうです。
1 リストの<string> LIST1 =は、Arrays.asList( "A"、 "B"、 "C"、 "A"、新たな文字列( "C" )); 2 list1.stream()別個の()のforEach(のSystem.out ::のprintln)。 3 4 一覧<整数> = LIST2は、Arrays.asList(1、2、3、1、新しい整数(2 ))。 5 list2.stream()別個の()のforEach(のSystem.out ::のprintln)。
二、リスト<ユーザー>重複排除の目標値。
この後、直接比較することはできませんリストオブジェクト、書き換え等しいとhashCodeメソッドBeanオブジェクト、および自動的に設定、以下の具体例を置くことによって再設定することを必要とします。
オブジェクトの実体:
1 @Data 2 @AllArgsConstructor 3 パブリック クラスユーザー{ 4 プライベートストリングID。 5 プライベート文字列名; 6 プライベート int型の年齢; 7つの 8 パブリック ブール等しい(オブジェクトobj){ 9 ユーザU = (ユーザー)OBJ。 10 リターンname.equals(u.name)。 11 } 12 13 公共 int型のハッシュコード(){ 14 =における文字名; 15 リターンin.hashCode()。 16 } 17 }
上記の例とを比較することによって、そのオブジェクトに等しい、すなわち、同一の名前です。
1 リスト<ユーザ>ユーザリスト= 新しい ArrayListを<> (); 2 userList.add(新しいユーザ( "1"、 "ピーター"、18 ))。 3 userList.add(新しいユーザー( "2"、 "全く"、25 ))。 4 userList.add(新しいユーザ( "3"、 "ピーター"、22 ))。 5 6 セット<ユーザー>ユーザーセット= 新しい HashSetの<> (ユーザーリスト)。 7 リスト<ユーザ>リスト= 新しい ArrayListを<> (ユーザーセット)。 8 list.forEach(のSystem.out ::のprintln)。
バックリストに、自動設定により、リストにデエンファシス(等号とhashCodeメソッドの上に使用した場合でも)、およびすることができます。