HashSet包含不适用于Integer

时间:2015-12-18 14:36:41

标签: java

我不明白为什么包含不起作用(事实上如果我已经通过自定义类我可以重新访问我的hascode和equals方法,但这是Integer)。那么代替包含我可以使用的东西?请帮忙。

bc.sendMessage

2 个答案:

答案 0 :(得分:8)

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

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

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

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

答案 1 :(得分:5)

st1HashSet而不是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));
  }