Set <ShipperModel> shippers = baseSiteSerivce.getCurrentBaseSite().getStores().get(0).getShippers();
final List<KeyValueStoreModel> kvList = keyValueStoreService.getKeyValueStoreModelListByCode(HERITAGEUNIT_DELIVERYINSTRUCTION_SHIPVIA);
for (ShipperModel shipperModel : shippers)
{
for (KeyValueStoreModel keyValueStoreModel : kvList)
{
if(shipperModel.getCode().equals(keyValueStoreModel.getCode()))
{
// if codes are equals then it will remain in the kvList.
}
}
}
我有两个项目清单,并且根据要过滤kvlist的托运人
我想执行类似
kvlist.remainAll(shipper(based on code))
的操作,并希望将这些循环转换为流代码。 最佳答案
不理想,但是您可以尝试执行以下操作:
List<KeyValueStoreModel> filtered = kvlist.stream().filter(
kv -> shippers.stream().anyMatch(
s -> s.getCode().equals(kv.getCode())
)
)
).collect(Collectors.toList());
因此,我们得到了一个kv元素的
Stream
,然后检查托运人Set
中是否有任何对应的元素,最后将匹配的元素收集到一个新的List
中。