关于containsKey()方法和containsValue()方法,想不通,求大神们解答

来源:6-4 学生选课---判断 Map 中是否包含指定的 key 和 value

didi1234

2016-04-08 15:53

  1. containsKey()方法中的参数为什么是String类型的值,而containsValue()方法中的参数用的是一个student类型的对象,是不是既可以是基本类型也可以是对象啊

  2. 为什么containsValue()方法需要重写equals()方法和hashcode()方法,而containsKey()方法不需要

  3. 为什么containsValue()方法要重写hashcode()方法?

写回答 关注

3回答

  • Aampire乐0
    2016-04-09 10:39:25
    已采纳

    Hashtable继承于Map接口
    contains(Object value)
    测试此映射表中是否存在与指定值关联的键(如果此 Hashtable 将一个或多个键映射到此值,则返回 true)。
    判断容器中是否存在值
    但是contains并非和containsKey的功能一致而是和containsValue功能等同. 之所以说是等同原因是需要实现MAP中的containsValue:
    public boolean containsValue(Object value) {
    return contains(value);
       }
    性能上没有区别

  • 慕丝1322028
    2020-03-19 16:42:19

    JAVA中,String,Integer,Date 等类中已经被自动覆写方法。而老师举的例子中,key是String类的。所以不用覆写。


  • 怒放的生命012
    2016-06-11 21:42:39
    1. String并不是基本数据类型;另外基本数据类型并不能作为key值;


Java入门第三季

Java中你必须懂得常用技能,不容错过的精彩,快来加入吧

409792 学习 · 4340 问题

查看课程

相似问题