我有一个包含许多令牌请求者的列表,但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()))....;
答案 0 :(得分:3)
tokenRequestorList.stream()
.filter(tr -> tr.getId().equals(tokenRequestor.getId()))
.findAny()
.orElse(null);
这将返回与过滤器匹配的任何TokenRequestor
实例(在您的情况下,它将是唯一的),或null
与过滤器无关。