Java Streams 返回一个特定的类

标签 java java-stream

我有一个包含许多 token 请求者的列表,但 ID 是唯一的,并且过滤器将返回仅一个对象。

for (TokenRequestor requestor : tokenRequestorList) {
    if (requestor.getId().equals(tokenRequestor.getId())) {
        System.out.println("This object is unique!");
    }
}

我尝试用 Java 8 编写这段代码:

tokenRequestorList.stream().filter(tr -> tr.getId()
        .equals(tokenRequestor.getId())).collect(Collectors.toList());

如何过滤以返回TokenRequestor?该列表将包含 1 个元素。

例如:

TokenRequestor myObject = tokenRequestorList.stream()
        .filter(tr -> tr.getId().equals(tokenRequestor.getId()))....;

最佳答案

tokenRequestorList.stream()
    .filter(tr -> tr.getId().equals(tokenRequestor.getId()))
    .findAny()
    .orElse(null);

这将返回与过滤器匹配的任何 TokenRequestor 实例(在您的情况下它将是唯一的),或者 null 不与过滤器匹配。

关于Java Streams 返回一个特定的类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44248935/

相关文章:

java - 将数组从 jsp 传递到 javascript

java - 调用层次结构是如何实现的

java - 如何在 JTextPane 中使用 <a href> 标签

java - Gradle&Junit5 基于标签的 Gradle 任务在使用 & 表达式时不起作用

java - 如果在 Java 8 中流之前集合为 null,如何返回 false?

java - 使用 Java Stream API 获取大写字符作为字符串

java - Android NullPointerException 和 GetDatabaseLocked

float 的 Java 8 流平均值

Java 使用 Stream 初始化对象并设置属性

java - 使用 java Stream api 更新对象的嵌套列表