gpt4 book ai didi

java - 从 Set Java 8 中删除一个元素

转载 作者:行者123 更新时间:2023-12-02 10:05:08 26 4
gpt4 key购买 nike

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是否包含这两种类型,如果是,则需要删除一种类型。

第 1 部分很简单,到目前为止我已经使用实现了第 2 部分

if (set1.contains("type1" && set1.contains("typep2") {
set1.remove("type");
}

是否可以将第 1 部分和第 2 部分合并为一个操作?

谢谢

最佳答案

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

    Set<String> set1 = serviceClass.getType()
.stream()
.filter(type -> allowedType.contains(type))
.limit(1)
.collect(toSet());
如果至少有一个元素通过过滤器,

limit(1) 将返回 1 个元素的流,否则返回空流。在我看来,这会给你你所要求的(未经测试)。

关于java - 从 Set Java 8 中删除一个元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55386177/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com