使用 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;

这是假设最多可以有一个 MyObjid1 并且最多有一个 MyObjid2,如果这些标识符是唯一的,这是有意义的。

我添加了 limit(2) 以便管道在找到两个与请求的标识符匹配的元素后停止处理元素。