如何在Java中根据多个参数过滤列表中的数据?

Chr*_*onn 2 java list stream java-8 java-stream

我有一个GroupOffices列表

List<GroupOffice> officesOfTheGroup;
Run Code Online (Sandbox Code Playgroud)

我想搜索id是否等于groupOffice.getId(长值),但标签为groupOffice.getLabel(字符串),并将其分配给布尔值。下面的代码运行良好,但是有没有比使用for循环遍历所有项目更好的方法了?

 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:
}
Run Code Online (Sandbox Code Playgroud)

或者如何使用流?如果是这样,使用流是更好的方法吗?

注意:我正在使用Java8