我有两个包含 2 个不同对象的集合
1. Set<A>
2. Set<B>
class A {
private String Id;
private String name;
private B objB;
}
class B {
private String Id;
private String email;
}
我想检查第一个集合中 A 的任何对象在第二个集合 B 中是否具有相同的“Id”。
如果是
b.getId().contains(a.getId)
,那么B对象将被设置在A对象中。
objA.setB(objB);
基于谓词,我们如何根据匹配的“Id”属性值将 B 对象存储到 A 中(使用 Java 流)?
我首先会生成一组(可能更小的)集合的 ID,例如
Set<String> aIds = setA.stream().map(a -> a.id).collect(Collectors.toSet());
然后你可以检查第二个,如下所示:
boolean anyObjectInAIsInB = setB.stream().anyMatch(b -> aIds.contains(b.id));