再ソートへのJava 8と
ソート方法
一覧<整数>リスト=は、Arrays.asList(1,1,2,3- )。 // 升序 lists.sort(Comparator.comparing(整数:: intValue)); // 降序 lists.sort(Comparator.comparing(整数:: intValue).reversed()); 或者 // 升序 lists.stream()ソート()コレクト(Collectors.toList())。。。 // 降序
。。lists.streamは、()(Comparator.reverseOrder())コレクト(Collectors.toList())ソート。
輸入 java.utilの。* ; 輸入java.util.stream.Collectors。 パブリック クラスメイン{ 公共 静的 ボイドメイン(文字列[]引数){ リスト <整数> =リストは、Arrays.asList(1,1,2,3- )。 一覧 <整数>コレクト= distinctFiled(リスト); System.out.println(コレクト)。 System.out.println(sortFiled(リスト)); リスト <ユーザー>ユーザー= は、Arrays.asList( 新しいユーザ(1、 "小王"、 "男" )、 新しいユーザー(2、 "小李"、 "男" )、 新しいユーザー(3、」)、 新しいユーザー(2、 "小三"、 "男" ))。 一覧 <ユーザー> USERLIST = distinctObjectFiled(ユーザー); System.out.println(ユーザーリスト)。 System.out.println(sortObjectFiled(ユーザ)); } / ** *根据用户的性别去重 * @param ユーザー * @return * / プライベート 静的の一覧<ユーザー> distinctObjectFiled(一覧<ユーザー> ユーザー){ リターンusers.stream()。コレクト( Collectors.collectingAndThen(コレクター。 toCollection( () - > 新しいですTreeSetの<>(Comparator.comparing(ユーザー:: getSex)))、ArrayListの:: 新) ); } / ** *根据用户ID排序 * @paramのユーザー * @return * / プライベート 静的リスト<ユーザ> sortObjectFiled(一覧<ユーザ> ユーザ){ users.sort(Comparator.comparing(ユーザー::のgetId))。 リターンユーザー; } / ** *去除重复的属性 * @paramのリスト * @return * / プライベート 静的の一覧<整数> distinctFiled(一覧<整数> リスト){ リターンlists.stream()別個の()を収集(Collectors.toList())。 } / ** *排序 * @paramのリスト * @return * / プライベート 静的リスト<整数> sortFiled(一覧<整数> リスト){ lists.sort(Comparator.comparing(整数:: intValue)); 戻り値のリスト。 } }
モデル
パブリック クラスユーザー{ プライベート整数ID。 プライベート文字列名; プライベート文字列のセックス。 パブリックユーザー(){ } パブリック整数のgetId(){ 戻りID。 } 公共 ボイドSETID(整数ID){ この .ID = ID。 } パブリックユーザ(整数ID、文字列名、文字列性別){ この .ID = ID。 この .nameの= 名前; この .sex = セックス。 } パブリック文字列のgetName(){ リターン名。 } 公共 ボイドのsetName(文字列名){ この .nameの= 名前。 } パブリック文字列getSex(){ 戻り性別; } @Override パブリック文字列のtoString(){ 戻り "ユーザー{" + "ID =" + ID + "NAME = '" +名+ '\'' + "性別= '" +性別+ '\'' + 「}」。 } 公共 ボイドsetSex(文字列性別){ この .sex = セックス。