Java 11 Lambda - 检查每个对象,满足第一个条件时返回 true,否则返回 false

Tro*_*zan 0 java lambda java-11

我有一个方法,效果很好。这就是它的样子。

private boolean roomWithMoreThanTenFurnitures(Building building) {
if (building != null && building.hasRooms()) {
    for (Room room : building.getRooms()) {
        if (room.getFurnitures.size() > 10) {
            return true;
        }
    }   
}
return false;
}
Run Code Online (Sandbox Code Playgroud)

我想把它切换到 Lambda。uo 是用 shell 进来的,但是我不知道外面如何填写 if(条件) return true 或 return false。

building.getRooms().forEach(room -> {
//??
});
Run Code Online (Sandbox Code Playgroud)

m.a*_*icz 5

你不能这样做 - 这foreach是为了对每个集合/流元素执行一些操作,而不是过滤它们或映射到结果

你需要例如anyMatch方法 - 例如

building.getRooms().stream().anyMatch(room -> room.getFurnitures.size() > 10)
Run Code Online (Sandbox Code Playgroud)


归档时间:

查看次数:

2449 次

最近记录:

5 年 前