Comment filtrer les données sur une liste en fonction de plusieurs paramètres en Java?

Chris Garsonn:

J'ai une liste de GroupOffices

List<GroupOffice> officesOfTheGroup;

Je veux chercher si l'identifiant ne correspond pas à groupOffice.getId (valeur longue) , mais l'étiquette est groupOffice.getLabel (String) et lui attribuer une valeur booléenne. Le ci - dessous le code est bon travail, mais est - il une meilleure approche au lieu de passer par tous les articles avec boucle?

 public GroupOfficeDto saveGroupOffice(GroupOfficeDto groupOfficeDto) {     
            List<GroupOffice> officesOfTheGroup = //some list from db..
            for (GroupOffice go : officesOfTheGroup) {
                if ((!go.getId().equals(groupOfficeDto.getId())) && go.getLabel().equals(groupOfficeDto.getLabel())) {
                    return groupOfficeDto;
                }
        return null:
}

Ou comment flux puis-je utiliser? Si oui, est courant à l'aide est une meilleure approche pour elle?

Note: J'utilise Java8

Ruslan:

Si vous avez besoin valeur booléenne que vous pouvez faire:

boolean b = officesOfTheGroup.stream()
    .anyMatch(office -> !office.getId().equals(5) && office.getLabel().equals("London"))

Je suppose que tu aimes

Origine http://43.154.161.224:23101/article/api/json?id=223316&siteId=1
conseillé
Classement