这段代码这么写有什么问题

这段代码这么写有什么问题_第1张图片

这段代码这么写有什么问题?

List<String> baseRelList1 = new ArrayList<>();
            epmPersonList.forEach(Obj ->{
                interviewBacklogMessageList.forEach(t ->{
                    if (!Obj.equals(t.getPsnNum())){
                        baseRelList1.add(Obj);
                    }
                });
            });

这段代码存在一个问题,即在遍历interviewBacklogMessageList时,无论是否匹配到相应的条件,都会将Obj添加到baseRelList1中。这是因为在内部的forEach循环中使用了Obj,而不是interviewBacklogMessageList的元素进行比较。这可能导致baseRelList1中存在重复的元素或者包含了不符合条件的元素。如果想要实现正确的逻辑,需要修改代码如下:

List<String> baseRelList1 = new ArrayList<>();
epmPersonList.forEach(Obj ->{
    boolean foundMatch = interviewBacklogMessageList.stream()
            .anyMatch(t -> Obj.equals(t.getPsnNum()));
    if (!foundMatch){
        baseRelList1.add(Obj);
    }
});

这样修改后,只有在interviewBacklogMessageList中不存在与Obj相等的PsnNum时,才会将Obj添加到baseRelList1中。

你可能感兴趣的:(工作随笔集,我的成长之路,工作日常,java)