返回Java Lambda中的二级列表
我需要根据条件返回匹配的对象。我有这个3级列表,我需要在第二个列表中返回一个对象 代码示例如下返回Java Lambda中的二级列表,java,lambda,java-8,java-stream,Java,Lambda,Java 8,Java Stream,我需要根据条件返回匹配的对象。我有这个3级列表,我需要在第二个列表中返回一个对象 代码示例如下 firstLevelList.getMySecondList().stream() .flatMap(secondLevelList -> secondLevelList.getThirdLevelList().stream()) .filter(thirdLevelList -> thirdLevelList.getMyCond
firstLevelList.getMySecondList().stream()
.flatMap(secondLevelList -> secondLevelList.getThirdLevelList().stream())
.filter(thirdLevelList -> thirdLevelList.getMyConditionObject() == "test")
现在我迷路了,我需要返回第二级列表对象,如secondLevelList.getTest()
希望有人能帮上忙。看来您需要获取那些第二级元素,它们可能包含任何具有给定条件的第三级元素
firstLevelList.getMySecondList().stream()
.filter(secondLevelList -> secondLevelList.getThirdLevelList().stream()
.anyMatch(thirdLevelList -> thirdLevelList.getMyConditionObject() == "test"))
.map(secondLevelList -> secondLevelList.getTest())
.collect(toList());
firstLevelList.getMySecondList()
.stream()
.filter(x -> x.getThirdLevelList().stream().anyMatch(y -> y.getMyConditionObject().equals("test"))
.map(x -> x.getTest())
.collect(Collectors.toList())
在这种特定情况下,将字符串与
=
进行比较会得到意想不到的结果。另外,不清楚你的意图是什么。你能展示一些样本数据和预期结果吗?您想要单个对象还是对象列表?您想要获得多少值?