为了账号安全,请及时绑定邮箱和手机立即绑定

从 Set Java 8 中删除元素

从 Set Java 8 中删除元素

慕标5832272 2022-09-07 21:35:27
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 个元素的流,否则为空流。在我看来,这将为您提供您所要求的(未经测试)。


查看完整回答
反对 回复 2022-09-07
  • 1 回答
  • 0 关注
  • 207 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号