首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从集合Java 8中删除元素

从集合Java 8中删除元素
EN

Stack Overflow用户
提问于 2019-03-28 04:46:48
回答 1查看 64关注 0票数 0
代码语言:javascript
复制
static final List<String> allowedType = asList(type1,type2);

Set<String> set1 = serviceClass.getType()
                               .stream()
                               .filter(type -> allowedType.contains(type))
                               .collect(toSet());

需求由两部分组成,

part1。如果从serviceClass接收的类型具有allowedType中提到的任何服务类型,则将其添加到set1。

第二部分.After上面的操作,我需要检查set1是否包含两种类型,如果包含,则需要删除其中一种类型。

Part1很简单,到目前为止,我已经用part2实现了

代码语言:javascript
复制
if (set1.contains("type1" && set1.contains("typep2") {
    set1.remove("type");
}

有没有什么办法可以将part1和2合并到一个操作中?

谢谢,

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-03-28 05:07:39

如果总是有两种类型,并且您始终最多只能保留其中一种,则可以使用limit

代码语言:javascript
复制
    Set<String> set1 = serviceClass.getType()
           .stream()
           .filter(type -> allowedType.contains(type))
           .limit(1)
           .collect(toSet());

如果至少有一个元素通过筛选器,则limit(1)将返回一个包含1个元素的流,否则返回空流。在我看来,这将给你你想要的(未测试的)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55386177

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档