【发布时间】:2018-05-23 03:46:09
【问题描述】:
我正在尝试学习 Java,并且我达到了 HashSet 部分,长话短说我正在测试 contains 方法。
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。任何帮助!
【问题讨论】:
-
There is a difference between
containsandcontainsAll。第一个集合绝对不包含第二个集合本身,而它确实包含第二个集合的所有元素。 -
您正在检查您的第一个 HashSet 是否不包含第二个 HashSet 的值,而是包含 HashSet 本身,如果不是 firstSet.add(3);你做了 firstSet.add(secondSet),你的第一个集合的通用参数是
>,而不是你的结果是真的。 -
是的,是的,我应该使用 containsAll 而不是 contains,谢谢..
-
如果您想检查超集,请使用
containsAll,正如人们所指出的那样,但还要注意,对于您的两个 HashSet,firstSet.equals(secondSet)将是true