我不明白为什么contains不能正常工作(实际上,如果我通过自定义类,我可以重新访问hascode和equals方法,但这是Integer)。因此,代替包含我可以使用什么?请帮忙。

Set<Integer> st = new HashSet<>();
st.add(12);
Set<Integer> st1 = new HashSet<>();
st1.add(12);
System.out.println(st.contains(st1));

最佳答案

st.contains(st1)返回false,因为st1(Set<Integer>)的类型与st中的元素的类型(Integer)不同。

但是,您可以使用 Set#containsAll(Collection<?>) 方法:

System.out.println(st.containsAll(st1));

它将检查st1中是否存在st的元素。

10-06 09:37