map()仅在存在于其他容器中时调用函数

我有以下课程:

public class Prop {

    String key;

    ...

    public Prop merge(Prop other)
    {
        ...
        return this;
    }

    public String getKey()
    {
        return key;
    }
}

在业务逻辑中,我想合并所有其他道具中也存在的所有道具。简化示例:

public merge()
{
    getPropsSystemA()
      .stream()
      .map(p -> p.merge(<find property with same key in propsB (But if not exist do nothing!>)
      .collect(Collectors.toList());
}

private List<Prop> getPropsSystemA()
{
    return propsA;
}

private List<Prop> getPropsSystemB()
{
    return propsB;
}

我想在其他列表中找到具有相同键的属性。但是此属性在propsB中是可选的,因此它必须不存在。

如果propsB中不存在对应的prop,则我不想调用函数Prop.merge(Prop other)。

这可能直接在map()中吗?

评论