您好我检查了Params of Contains方法和ContainsAll方法。
boolean containsAll(Collection<?> c);
boolean contains(Object o);
似乎都会接受Object。两者之间是否有任何区别。
答案 0 :(得分:2)
不,他们都不接受对象。我们假设你有一个集合x:
第一种方法(x.containsAll(c)
)接受Collection c
,如果该集合中的所有元素也包含在x中,则返回true。
第二个(x.contains(o)
)接受Object o
,如果该对象包含在x中,则返回true。
答案 1 :(得分:2)
contains和containsAll之间的区别在于包含检查列表中是否存在1个Object(参数),而containsAll检查列表是否包含给定集合中的所有元素(因此方法名称中的all)。
此外,containsAll可以接受Object,因为Object是Java中每个类的超类。但是,如果您传递的Object不是Collection的实例,则在运行时将出现ClassCastException。
答案 2 :(得分:0)
是的,有区别。 containsAll
不接受Object。它只接受一个对象集合。
答案 3 :(得分:0)
以下方法接受任何类型,因为所有类型都来自Object
contains(Object o);
以下方法接受任何类型的集合,因为使用了通配符?
:
containsAll(Collection<?> c);