创建一个由列表中缺少的项目组成的列表

时间:2018-06-14 17:29:54

标签: java java-8

我有两个清单。

第一个是对象ManagerStoreId,由两个属性组成:Manager和StoreId,例如:

List<ManagerStoreId> managerStoreIdList;

public ManagerStoreId {
   private String manager;
   private String productId;
}

第二个是经理:

List<String> Manager;

我想创建第三个列表:

List<String> managerNotFoundInManagerStoreIdList

这是ManagerStoreId中不存在的经理列表。

最好的方法是什么?

我考虑过循环managerStoreIdList,然后进行某种检查以查看是否使用getManager方法查找字符串。但是,如果它没有列出,我怎么知道将它添加回列表呢?

1 个答案:

答案 0 :(得分:1)

有很多方法可以计算managerNotFoundInManagerStoreIdList。这是最简单的一个:

创建一组manager并查找:

Set<String> managers = managerStoreIdList.stream().map(ManagerStoreId::getManager)
    .collect(Collectors.toSet());

List<String> managerNotFoundInManagerStoreIdList = Manager.stream()
    .filter(m -> !managers.contains(m))
    .collect(Collectors.toList());