返回Java Lambda中的二级列表

返回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

我需要根据条件返回匹配的对象。我有这个3级列表,我需要在第二个列表中返回一个对象

代码示例如下

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())

在这种特定情况下,将字符串与
=
进行比较会得到意想不到的结果。另外,不清楚你的意图是什么。你能展示一些样本数据和预期结果吗?您想要单个对象还是对象列表?您想要获得多少值?