static final List<String> allowedType = asList(type1,type2);Set<String> set1 = serviceClass.getType() .stream() .filter(type -> allowedType.contains(type)) .collect(toSet());该要求由两部分组成,第1部分。如果从 serviceClass 接收的类型具有 allowedType 中提到的任何服务类型,请将其添加到 set1。第2部分。完成上述操作后,我需要检查set1是否包含这两种类型,如果是,则需要删除一种类型。Part1很简单,截至目前,我已经使用part2实现了part2if (set1.contains("type1" && set1.contains("typep2") { set1.remove("type");}有没有第1部分和第2部分可以杵化成一个单一的操作?谢谢
1 回答

呼如林
TA贡献1798条经验 获得超3个赞
如果总是有两种类型,并且您始终可以最多保留其中一种,则可以使用:limit
Set<String> set1 = serviceClass.getType() .stream() .filter(type -> allowedType.contains(type)) .limit(1) .collect(toSet());
limit(1)
如果至少有一个元素通过过滤器,将返回 1 个元素的流,否则为空流。在我看来,这将为您提供您所要求的(未经测试)。
添加回答
举报
0/150
提交
取消