黑马程序员技术交流社区

标题: Map 关注事物的映射和键值的唯一性。这句话不好理解! [打印本页]

作者: 黄坚声    时间: 2012-5-11 17:07
标题: Map 关注事物的映射和键值的唯一性。这句话不好理解!
Map 关注事物的映射和键值的唯一性。这句话是什么意思?请哥们举个例子,好吗?先谢了!
作者: 黑马张立国    时间: 2012-5-11 18:00
键是唯一的不能重复(键和键的比较),值是唯一的不能重复(一个值只能对应一个键,不能对应多个键,但值和值之间可以重复)
这样就保证了映射的唯一
例如:
一个班级的的学生是集合map;
每个学生的学号是键Key
每个学生的名字是值value
作者: 杨静    时间: 2012-5-11 18:07
在Map中保存具有映射关系的数据,包括两组值,一组是KEY,另一组是value,而键值必须在这个集合中是唯一的就是说不好可重复(即将所有的key放在一起的话与Set是相似的),而value集合是与List集合相似的。映射的唯一性,是指键值和value之间的映射关系是单向唯一的。
作者: 王怡然    时间: 2012-5-11 18:25
map集合的键值唯一性,是指的key和value之间一一对应的关系.比如新建一个Map对象: Map<String,Integer>  map=new HashMap<String,Integer> (); 往这个对象中存入值,如:
map.put("张三",23); 这里的唯一性可以说成字符串"张三"这个Key和23这个值是一一对应的.这个映射关系中,Key是不可以相同的,但Value是可以相同的.随便说下.怎么去除key的相同值.首先在存之前会通过hashcode()方法计算哈希值,若不同就存入,若相同再通过equals()进行比较,不同就存,相同就不存.
作者: 小小企鹅    时间: 2012-5-11 18:31
一个映射不能包含重复的键;每个键最多只能映射一个值。
作者: 杨鹏    时间: 2012-5-11 18:58
Map集合中存储的是具有映射关系的键值对对象,键和值是一一对应的关系,也即是一个键只能对应一个值,其中要注意的是:Map集合中键是唯一的不可重复,而值是可以重复的,当向Map集合存储添加元素时,如果键已经存在,那么该键所对应的值会被新的值所覆盖。比如一个Map集合存储的某个字符串中每个字符出现的次数,那么这时候就会以字符作为键,出现次数作为值,此时字符是不可重复,但是出现的次数是可以重复的。试想一下,如果字符可以重复,也即是集合中的键重复,比如集合中有两个元素都以a作为键,那么查找a字符出现的次数时集合就不知道要显示的是哪一个值。所以键是不能重复的。其实可以把可以把Map集合中的键理解为数据库表中的主键。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2