使用 Java 流检查列表包含的优雅方式
Elegant way of checking list containment using Java streams
我有这个列表 myList
of MyObj
class 其中包含一个 String id
字段。
用户向我提供了两个 ID (String)
,我想验证 myList
包含两个 MyObj
的实例,对应于这些提供的 id。
使用 streams
的优雅方式是什么?
谢谢!
怎么样:
boolean contains = myList.stream()
.map(MyObj::getID)
.filter(id -> id.equals(id1) || id.equals(id2))
.limit(2)
.count () == 2;
这是假设最多可以有一个 MyObj
有 id1
并且最多有一个 MyObj
有 id2
,如果这些标识符是唯一的,这是有意义的。
我添加了 limit(2)
以便管道在找到两个与请求的标识符匹配的元素后停止处理元素。
我有这个列表 myList
of MyObj
class 其中包含一个 String id
字段。
用户向我提供了两个 ID (String)
,我想验证 myList
包含两个 MyObj
的实例,对应于这些提供的 id。
使用 streams
的优雅方式是什么?
谢谢!
怎么样:
boolean contains = myList.stream()
.map(MyObj::getID)
.filter(id -> id.equals(id1) || id.equals(id2))
.limit(2)
.count () == 2;
这是假设最多可以有一个 MyObj
有 id1
并且最多有一个 MyObj
有 id2
,如果这些标识符是唯一的,这是有意义的。
我添加了 limit(2)
以便管道在找到两个与请求的标识符匹配的元素后停止处理元素。