Java HashSet 包含预期值以外的值,而不是预定义值

标签 java contains hashset

我查看了这个论坛的答案Java HashSet<> : Return false if HashSet contains values other than specified

但是在这个论坛答案中,选项是预定义的,对我来说不是。

我从网络表中读取,其他城市名称可以是任何名称。

//ToDo:如果set包含西雅图以外的任何内容,则使其失败

public void cityTest() {
    Set<String> citySet = new HashSet<>();
    citySet.add("Seattle");
    citySet.add("Boston");

    //Case 1: Check size and if it is more than 1 we know we got more than 1 city name
    if (citySet.size() > 1) {
        Assert.fail("Expected only Seattle but found more than 1 city");
    }

    //Case 2: See if the set contains any other city name than Seattle
    if (citySet.contains("Seattle") && (!(citySet.contains("Seattle")))) { // This does not work
    Assert.fail("Expected only Seattle but found more than 1 city");
}
    }
} 

问题:案例 2 可以使用什么逻辑?

预先感谢您的宝贵时间

最佳答案

在第二种情况下,您所说的城市集是否包含西雅图并且不包含西雅图 那永远不会返回 true。 你可以说,如果城市集包含西雅图并且大小大于 1,如果有更多城市,则返回 true。

关于Java HashSet 包含预期值以外的值,而不是预定义值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61619443/

相关文章:

java - 可变数量的线程/声明 ExecutorService

c# - 性能思路(内存中的 C# 哈希集和包含太慢)

c# - Contains 中的正则表达式

java - 用于查找重复数组的 HashSet

c# - 如果你改变它们的身份,HashSets 不会保持元素的唯一性

java - 为什么异常处理不能处理异步事件?

java - 如何使用 java -jar 或 java -cp 命令运行 Sbt 打包 Jar?

java - 由于 SSL 证书发送邮件失败,如何添加新证书或检查这是否真的是源错误?

java - 在 JAVA 中读取列表时,我们可以使用 .contains(BigDecimal.ZERO) 吗?

clojure - 帮助我了解 Clojure 中如何处理不变性和运行时间之间的冲突