【发布时间】:2020-08-28 13:13:33
【问题描述】:
我可能无法正确搜索,但这是一个理论上很简单的查询。我有包含数字的数组列表。我想过滤与另一个列表中的所有条目匹配的列表。
说以下是我的清单 {1,2,3},{1,2},{1},{2},{3}, {2,3}
现在如果我的条件列表是 {1,2} 我应该得到以下结果 {1,2,3},{1,2}
基本上我正在寻找标准列表的所有匹配项。我尝试在谓词中使用包含,但它的返回类似于或条件
//internally it creates array
products.add(new ProdData(344, 766));
products.add(new ProdData(344,123));
products.add(new ProdData(344,766,123));
List<Integer> matchingVolumes = new ArrayList<>();
matchingVolumes.add(344);
matchingVolumes.add(766);
products.stream()
.map(ProdData::getChemVolume)
.filter(p -> {return matchingVolumes.contains(p);})
.collect(Collectors.toList());
我想匹配记录 #1 和 3
products 是 ProdData 对象的列表,其中 chemVolume 是我试图匹配标准的字段。条目顺序无关紧要。
【问题讨论】:
-
你能发布你的代码吗?数组是字面意思 数组,例如
int[]还是列表? -
贴出代码,方便我们在本地测试尝试使用
-
条目的顺序是否重要,或者如果条目存在于数组中的某处就足够了?
-
@niteen22 请在问题中编辑附加信息,您可以在那里很好地格式化代码
-
您能否编辑问题以包含创建“包含数字的数组列表”的代码?
标签: java java-stream