小编Jav*_*Dev的帖子

如何使用 java 流改进此代码

我需要查找给定列表中是否有 18 岁以上的用户。如果没有超过 18 岁的用户,则该方法应返回 -1。否则,它应该返回最年轻用户的年龄。

在使用流时,我创建了以下方法,但是,流被使用了两次。有没有更好的方法来使用流来做到这一点

public int test(List<User> userList) {
    List<User> usersOver18 = userList.stream()
            .filter(emp -> emp.getAge() > 18)
            .collect(Collectors.toList());

    if (usersOver18.isEmpty()) {
        return -1;
    }
    return usersOver18.stream()
            .min(Comparator.comparing(User::getAge))
            .get().getAge();
}
Run Code Online (Sandbox Code Playgroud)

java java-8 java-stream

1
推荐指数
1
解决办法
136
查看次数

标签 统计

java ×1

java-8 ×1

java-stream ×1