判断Map中是否包含指定的key和value:


注意:需为containsValue()方法添加hashCode();方法
利用集合框架,就可以直接调用集合框架中的方法直接遍历查询,如contains方法,不用辛辛苦苦自己写个for循环了!
3:47 students是个泛型为<String,Student>的映射,因此get(id)会返回Student,而后面加上一个点·,代表调用了这个Student类型里面的name属性值!
望文生义法!(前提是你的对象名要设置的好!)
可以把students看成是一个集合体,所以这个对象就是个一个宏观集体对象,处理起来,自然要用到集合框架的思想和方法了!
Map方法:containsKey(), containsValue()
Map类型的实例化对象students也有判断是否含有某键值或者是否含有某元素的方法,分别是containsKey()和containsValue(),其中containsValue()方法也是要重写元素的euqals和hashCode才能正常判断
public static void main(String[] args){
MapTest mt = new MapTest();
mt.testPut();
mt.testKeySet();
mt.testModify();
mt.testEntrySet();
}
public void testContainsKeyOrValue(){
System.out.println("请输入要查询的学生ID");
Scanner console = new Scanner(System.in);
String id = console.next();
System.out.println("您输入的学生ID为:"+id+",在学生映射表中是否存在:"+students.containsKey(id));
if(students.containsKey(id))
System.out.println("对应的学生为:"+students.get(id).name);
}
通过containsValue方法判断是否包含某个Value值
注意:由于containsValue方法实现原理和之前List的contains方法一样,所以在调用前需要重写hashCode和equals方法。
通过containsKey方法判断Map中是否包含某个Key值
Map中通过containsKey()方法和containsValue()方法来判断键和值是否存在
Map 中对对象进行了 Key 标记,通过 get(Key)可以取得对应的对象
Map 的containsKey()方法取得 Map 映射的 Key 值Map 的containsValue()方法的参数是 Object 对象,因为Map 的 Value 值是对象元素
和 List 的 contains()方法一样,Map 中的 containsValue()方法也会调用每个 Value 值的 equals()方法去和参数对象比较
id 是string类型 contains方法使用equals方法 来比较,所以值相等就返回ture
Value 是Student类型,自己定义的,默认的contains方法中的equals方法,比较的是两个引用是否一样,所以要重写equals方法
由于是比较两student类型是否相同,所以要做Student类中重写equals方法
Map中用containsKey(key)/containsValue(Value)来判断是否包含某对象
value值是一个Student类型的对象,那使用containsValue()传入的参数要是对应的value,在这里value对应的就是一个Student 对象。
new Student(null,name)这个对象和students.get(id)得到的对象不是同一个,if判断的是map里是否有叫例如“张三”的学生, 如果有则找到他这个学生,这个学生有id ,巧了他也叫“张三”.new Student(null,name)这个student没有id但有name叫“张三”
在map中用containsKey()和containsValue()方法判断是否含有某个key和value
map.containsKey
map.containsValue 类似list,根据equals方法判断
100%
关于Student的hashCode和equals 方法重写: 没有重写之前是比较的新建对象所在的内存空间 而重写之后则是比较两个类对象是否相同
containsKey: students.containsKey(id)
containsValue students.containsValue(new Student(null,name))
重写student类的equal方法
Map中的containsValue方法和List,Set一样,也需要调用每一个Value值的equals方法去和参数对象进行比较,如果匹配成功那么返回结果为true。(即需要重写Value值类的equals方法)
Map中通过containsKey()方法和containsValue()方法来判断键和值是否存在
Map 中对对象进行了 Key 标记,通过 get(Key)可以取得对应的对象
Map 的containsValue()方法的参数是 Object 对象,因为Map 的 Value 值是对象元素
Map 的containsKey()方法取得 Map 映射的 Key 值
跟List中的Contains()方法一样,Map中的ContainsValue()方法也需要调用某个Value值的equals()方法,去和参数对象进行比较,如果匹配成功,返回结果为true,说明在Map中的Value值确实包含参数对象。因此,需要重写Student类的equals()方法。
public void testContainKeyOrValue() {
System.out.println("请输入学生的ID");
Scanner input =new Scanner(System.in);
String id = input.next();
System.out.println("你输入的学生id为:"+id+",在学生隐射表里面是否存在:"+student.containsKey(id));
if (student.containsKey(id))
System.out.println("对应的学生为:"+student.get(id).name);
System.out.println("请输入学生姓名:");
String name =input.next();
if(student.containsValue(new Student(null,name)))
System.out.println("在学生映射表里是存在学生:"+name);
else
System.out.println("不存在该学生");
}
在map 中,用containsKey()判断是否包含某一个key
containsValue()判断是否包含某个Value
在Map中,用containsKey()方法,来判断是否包含某个Key值
用containsValue()方法,来判断是否包含某个Value值
Map中通过containsKey()方法和containsValue()方法来判断键和值是否存在
Map 中对对象进行了 Key 标记,通过 get(Key)可以取得对应的对象
Map 的containsValue()方法的参数是 Object 对象,因为Map 的 Value 值是对象元素
Map 的containsKey()方法取得 Map 映射的 Key 值
List中的contains()方法借Map中的containsValue()方法调用equals()方法来进行比较。所以要重写Hashcode和equals方法
Map中,用containsKey()判断是否包含某个Key值,用containsValue()判断是否包含某个Value值。
containsValue方法使用:

注意:重写Student中的hashcode()和equals()方法,否则程序运行出错。
Map中通过containsKey()方法和containsValue()方法来判断键和值是否存在 Map 中对对象进行了 Key 标记,通过 get(Key)可以取得对应的对象 Map 的containsValue()方法的参数是 Object 对象,因为Map 的 Value 值是对象元素 Map 的containsKey()方法取得 Map 映射的 Key 值 List中的contains()方法借Map中的containsValue()方法调用equals()方法来进行比较。所以要重写Hashcode和equals方法 跟 List 的 contains()方法一样,Map 中的 containsValue()方法也会调用每个 Value 值的 equals()方法去和参数对象比较 id 是string类型 contains方法使用equals方法 来比较,所以值相等就返回ture Value 是Student类型,自己定义的,默认的contains方法中的equals方法,比较的是两个引用是否一样,所以要重写equals方法 由于是比较两student类型是否相同,所以要做Student类中重写equals方法
关于Student的hashCode和equals 方法重写:
没有重写之前是比较的新建对象所在的内存空间 而重写之后则是比较两个类对象是否相同
Map中,用containsKey()方法,来判断是否包含某个Key值
用containsValue()方法,来判断是否包含某个Value值(重写hashCode()和equals()方法)
这里的value是student,不是name
Map中通过key或者value查找

需要重写hashCode和equals方法
Map中,用containsKey()方法,来判断是否包含某个Key值
用containsValue()方法,来判断是否包含某个Value值(重写hashCode()和equals()方法)