我不明白为什么包含不起作用(事实上如果我已经通过自定义类我可以重新访问我的hascode和equals方法,但这是Integer)。那么代替包含我可以使用的东西?请帮忙。
bc.sendMessage
答案 0 :(得分:8)
st.contains(st1)
会返回false
,因为st1
(Set<Integer>
)的类型与st
中的元素类型不同( Integer
)。
但是,您可以使用Set#containsAll(Collection<?>)
方法:
System.out.println(st.containsAll(st1));
将检查st1
中是否存在st
的元素。
答案 1 :(得分:5)
st1
是HashSet
而不是Integer
。
尝试使用该代码,您将看到它有效:
Set<Integer> st = new HashSet<>();
st.add(12);
System.out.println(st.contains(12));
或
public static void main(String[] args) {
Set<Integer> st = new HashSet<>();
st.add(12);
Set<Integer> st1 = new HashSet<>();
st1.add(12);
System.out.println(st.containsAll(st1));
}