Java Stream API如何改进表达

标签 java list java-8 java-stream

我有以下代码:

public List<Entry> getEntriesForUserId(int userId) {
    User u = DataBaseConnector
        .getAllUsers()
        .stream()
        .filter(user -> user.getUserId() == userId)
        .findFirst()
        .orElse(new User(-1, "Error");
    return u.getEntries();
}

getEntries()返回 List<Entry> .

如何将 return 语句添加到此 lambda 表达式中?就像是 .map(User::getEntries)

最佳答案

你不需要 lambda 来返回列表,你可以说:

public List<Entry> getEntriesForUserId(int userId) {
    return DataBaseConnector
             .getAllUsers()
             .stream()
             .filter(user -> user.getUserId() == userId)
             .findFirst()
             .orElse(new User(-1, "Error")
             .getEntries();
}

关于Java Stream API如何改进表达,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51837585/

相关文章:

Java从队列中检索所有元素,直到队列为空

python - 我是否检查过该列表的每个连续子集?

java - 使用 lambda 从嵌套在嵌套映射内的一组列表构建最大值列表

java - 为什么必须为方法引用显式指定类/对象名称?

python - 在 Python 中比较和更新数组值

带有数组元素的 Java 自定义注解

java - 从其他类调用时 JFrame 未加载

java - 以最快的方式找到所有可能的子字符串

java - 如何使 2 个整数的除法产生一个 float 而不是另一个整数?

c++ - 如何调用列表中对象的函数?