Java的API文档指出:
当且仅当 本set包含一个元素 e,并且满足(o == null ? e==null : o.equals(e))条件时,contains()方法才返回true. 因此 contains()方法 必定使用equals方法来检查是否相等.
需要注意的是: set 中是可以包含 null值的(常见的集合类都可以包含null值). 所以如果添加了null,然后判断是否包含null,将会返回true,
Scanner in = new Scanner(System.in);
Set<String> a = new HashSet<>();
Set<Integer> b = new HashSet<>();
a.add(null);
a.add("ss");
b.add(1);
if(a.contains(null)){
System.out.println("true");
}
if(a.contains("ss")){
System.out.println("true");
}
if(b.contains(1)){
System.out.println("true");
}
结果全是true