用java8替换foreach

用java8替换foreach,java,java-8,java-stream,generic-collections,Java,Java 8,Java Stream,Generic Collections,如何按照java8在父列表中有一个内部列表并进行过滤来转换代码 for(A aobj: branchList) { for(C cobj : aobj.getCList()) { if(!enteredBranchId.equals(cobj.getId()) myList.add(aobj.getId()); } } 那么,您在哪里遇到了Java流的问题?你知道什么是平面图操作吗?collect应该做什么,有哪些Collector可用?

如何按照java8在父列表中有一个内部列表并进行过滤来转换代码

for(A aobj: branchList) {
    for(C cobj : aobj.getCList()) {
        if(!enteredBranchId.equals(cobj.getId())
            myList.add(aobj.getId());
    }
}

那么,您在哪里遇到了Java流的问题?你知道什么是平面图操作吗?collect应该做什么,有哪些Collector可用?你有没有试着用过,但失败了?模糊的标题。重写以总结您的具体技术问题。@realponsust-我确实使用了几个函数,但无法生成所需的函数。任何关于代码的帮助都是有帮助的!您不应该在flatMap中调用GetSubBranchs吗?getBranchId不会引发编译时异常吗?Collection::stream作为非静态方法上下文错误也是如此?@JacobG。诚然,要使平面图起作用,分支列表必须是一个集合,除此之外,即使它起作用,答案甚至不涉及问题中的C类。因为这个原因投了反对票。@JacobG。没错,我忘了那一步@纳曼:这个答案是在问题的第一个版本上完成的。如果您注意到进行了多个编辑,并且类C是稍后添加的.mapb->b.GetSubbranchs.flatMapCollection::stream可以转换为flatMapb->b.GetSubbranchs.stream
myList = branchList.stream()
           .map(b -> b.getSubBranches())  
           .flatMap(Collection::stream)
           .filter(sb -> !enteredBranchId.equals(sb.getBranchId()))
           .collect(Collectors.toList());