Java Streams返回特定的类

时间:2017-05-29 18:56:00

标签: java java-stream

我有一个包含许多令牌请求者的列表,但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个元素。

E.g:

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

1 个答案:

答案 0 :(得分:3)

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

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