【发布时间】:2019-12-10 11:44:42
【问题描述】:
我有两个列表,我想根据 Object1 和 Object2 的属性执行一些操作。
对象1:
public class Object1 {
private String prop1;
private String prop2;
}
对象2:
public class Object2 {
private String prop1;
private String prop2;
private String prop3;
private boolean prop4;
}
我想使用流而不是使用大方法。
假设我们有以下列表:
List<Object1> object1List = // List of Object1's
List<Object2> object2List = // List of Object2's
现在,我想比较两个列表中的 prop1 和 prop2,如果它们相等,我想从 Object2 中获取 prop3,并且基于 prop3 现在我想从 Object2 中查看 prop4 为 true 的所有元素,并确保所有元素都为 true .
例子:
Object1:
prop1 | prop2
test1 value1
test1 value2
Object2:
prop1 | prop2 | prop3 | prop4
test1 value1 some true
test1 value2 some1 true
test2 value3 some true
现在从上面的例子中,我想流式传输列表并比较列表,如果 prop1 和 prop2 相等,我想在 "some" 的情况下获取 prop3 并获取所有 prop4 值 "true" prop3 的值为“some”并查看 prop1 和 prop2 是否在 Object 的第一个列表中,并将它们收集在一个集合中。我可以用传统方式做到这一点,但流似乎更易读,代码行更少。我只是在学习流,任何想法都值得赞赏!
【问题讨论】:
-
您是使用 prop1|prop2 字段作为第二个集合中项目的键,还是比较按索引对应的项目?
标签: java collections java-8 stream