containsValue和包含Hashtable方法之间的区别是什么 http://docs.oracle.com/javase/7/docs/api/java/util/Hashtable.html
答案 0 :(得分:4)
没有。强调我的。
如果此哈希表将一个或多个键映射到此值,则返回true。 请注意,此方法的功能与
contains
(早于Map界面)相同。
所以你可以使用其中任何一个,我会更频繁containsValue()
,因为它更加不言自明,但那只是我。
同一事物有两种不同方法的原因是因为HashTable
implements
Map<K, V>
接口。我还不知道您是否已经使用过接口,但implement
接口所需的所有类都必须具有interface
中定义的所有方法。因此,由于Map
有boolean containsValue(Object value);
的定义implement
HashTable
它(如containsValue()
}也必须拥有该方法。这就是contains()
存在的原因。
那么我们为什么还必须contains()
?好吧,那是因为Map
存在,甚至在contains()
界面存在之前就已存在(参见上面的文档片段)。 Map
排在第一位,这就是它拥有所有功能的原因。添加containsValue()
界面后,该类必须添加contains
方法,并且他们不想复制{{1}}方法中已有的代码,因此他们只是叫它。
答案 1 :(得分:2)
如果您阅读contains()
的完整文档,则会看到
请注意,此方法的功能与containsValue相同(它是集合框架中Map接口的一部分)。
答案 2 :(得分:2)
他们是一样的。如果您不相信文档,请查看source code(第314行):
public boolean containsValue(Object value) {
return contains(value);
}