Ich habe zwei Sätze von Rollen. Einer aus einer Datenbank, ein anderer aus der Benutzeroberfläche. Ich habe auch eine Vergleichsmethode für zwei Rollen basierend auf dem Namen der Rolle geschrieben.Java-8 filtert zwei Sätze mit Lambdas
Problem: Ich möchte Rolle extrahieren (eine aus der Datenbank behalten), wenn der Vergleichswert mit lambdas expression den Wert true zurückgibt.
Die matchingRoleNames
funktionieren gut, aber ich suche die besten lambdas Praktiken, die ohne for-Schleife zu tun. Das ist mein Set Ergebnis ist die fein gearbeitet:
Set<Role> rolesFromUI = user.getRolesFromUI();
Stream <Role> roleStreamFromDB = roleService.getAllRolesStreamFromDatabase();
Set<Role> matchingRoleNames = roleStreamFromDB.filter(role->
{
for(Role roleTmp:rolesFromUI){
if(roleTmp.compareTo(role)==0){
return true;
}
}
return false;
})
public int compareTo(Role role){
return this.roleName.compareTo(role.getRoleName());
}
Danke
Siehe https://stackoverflow.com/help/someone -answers – c0der