废话不多说直接上代码
public static void main ( String [ ] args) {
List < MpBussSystemUser > UserList1 = new ArrayList < > ( ) ;
MpBussSystemUser User = new MpBussSystemUser ( ) ;
User . setId ( 1 ) ;
User . setAppId ( "test" ) ;
User . setAppKey ( "111" ) ;
UserList1 . add ( User ) ;
List < MpBussSystemUser > UserList2 = new ArrayList < > ( ) ;
MpBussSystemUser User1 = new MpBussSystemUser ( ) ;
User1 . setId ( 2 ) ;
User1 . setAppId ( "test" ) ;
User1 . setAppKey ( "222" ) ;
UserList2 . add ( User1 ) ;
MpBussSystemUser User2 = new MpBussSystemUser ( ) ;
User2 . setId ( 3 ) ;
User2 . setAppId ( "test" ) ;
User2 . setAppKey ( "333" ) ;
UserList2 . add ( User2 ) ;
System . out. println ( "未筛选前:------------------------------" ) ;
UserList1 . forEach ( mp -> {
System . out. println ( "appId:" + mp. getAppId ( ) + "\tid:" + mp. getId ( ) + "\tappKey:" + mp. getAppKey ( ) ) ;
} ) ;
UserList2 . forEach ( mp2 -> {
System . out. println ( "appId:" + mp2. getAppId ( ) + "\tid:" + mp2. getId ( ) + "\tappKey:" + mp2. getAppKey ( ) ) ;
} ) ;
StringBuffer stringBuffer = new StringBuffer ( ) ;
System . out. println ( "筛选后:------------------------------" ) ;
UserList1 . stream ( ) . map ( mp1 -> {
UserList2 . stream ( ) . filter ( mp2 -> mp1. getAppId ( ) . equals ( mp2. getAppId ( ) ) ) . forEach ( mp2 -> {
stringBuffer. append ( mp2. getAppKey ( ) + "," ) ;
} ) ;
stringBuffer. delete ( stringBuffer. length ( ) - 1 , stringBuffer. length ( ) ) ;
mp1. setAppKey ( stringBuffer. toString ( ) ) ;
return mp1;
} ) . collect ( Collectors . toList ( ) ) ;
UserList1 . forEach ( mp -> {
System . out. println ( "appId:" + mp. getAppId ( ) + "\tid:" + mp. getId ( ) + "\tappKey:" + mp. getAppKey ( ) ) ;
} ) ;
}