我正在尝试学习Java,并且达到了HashSet部分,总而言之,我正在测试contain方法。

public static void main(String[] args) {
    HashSet<Integer> firstSet = new HashSet<>();
    firstSet.add(3);

    HashSet<Integer> secondSet = new HashSet<>();
    secondSet.add(3);

    boolean var = firstSet.contains(secondSet);

    System.out.println(var);

}


我相信这段代码应该返回true,而返回false。任何帮助!

最佳答案

boolean var = firstSet.contains(secondSet);


这行引起了问题,因为您没有检查secondSet中是否存在特定元素,而是检查firstSet是否将整个secondSet本身存储了,这显然是错误的。

例如,您应该检查. contains(secondSet.get(0))还是.contains(3)

如果要检查firstSet是否包含secondSet中存在的所有元素,则可以使用firstSet.containsAll(secondSet)

09-05 12:41