黑马程序员技术交流社区
标题:
Map集合特点求教
[打印本页]
作者:
prospect
时间:
2012-4-27 22:54
标题:
Map集合特点求教
Map集合:该集合存储键值对,一对一对往里存。而且要保证键的唯一性。是不是说值就不必保证它的唯一性呢,就好比在一个暗箱里,里面有多个具有编号的小箱子
,小箱子里存放有多个元素,这里元素就是键值对中的值,小箱子的编号就是键值对中的键。不知可不可以怎么去做理解啊?
作者:
赵嘉男
时间:
2012-4-27 23:02
Map是成对放的,一放一对。。分成KEY和VALUE
Map是以键值出现的 常用实现类有HashMap,TreeMap
Map 是以键值对的方式进行存储 多用于用户登录名记录
作者:
杨志
时间:
2012-4-27 23:11
Map集合中的键(key)就相当于一个标记,而那个值(value)就是真正对应的值!
Map呢是根据键得到值,因此不允许重复。
其实呢Map只是JAVA中的一个接口。它有四个实现类。分别是是HaspMap,hashTble,LinkedHashMap和TreeMap.
当然个人认为最常用的还是HaspMap,读取速度很快,当然只允许一条记录的键为空,但是允许多条记录的值为空。由于速度快,当然是不支持线程同步的.
谢谢!
作者:
光sail
时间:
2012-4-27 23:51
本帖最后由 光sail 于 2012-4-28 12:14 编辑
楼主的理解是正确的。
Map (映射):以键(key)值(value)对形式存储数据,取出的值根据提取哪个键,获取这个键所存储的值。
作者:
丁佼
时间:
2012-4-28 12:03
简单举例理解:key可以看做学号之类的定位符,value就是姓名可以任意值。
学号不可以重复,人的姓名可以重复,
找人的时候根据学号找就可以立即精准定位。
就是说,电脑是个很不智能的东西,
你告诉它要查找某个人的信息,他自己不知道人是什么,以及如何区分,
如果你用不唯一的条件去集合里筛选,那么它就糊了,搞不懂要返回哪一个给你。
所以要定位到一个元素,那个元素就必须要有自己的唯一特征,是别人没有的,
所以map的key——也就是特征——必须是唯一的,电脑才能定位到那个元素,
而定位到元素之后数据(value)可以是任意的,因为电脑已经知道key指定的这个元素就是要返回的信息。
hashmap什么的都是一样,要定位到具体的元素,那个元素就必须有自己的特征,
hashcode算出来的值可能会有重复,所以在hashcode重复之后又会调用equals进行第二次判算,
两次都重复的便认为数据已经定位到。
关键就是——电脑很笨,要定位就必须要把清楚的条件表达给它,不能有模糊判断。
==================================
另附:解释下为什么有equals了还要使用hashcode,hashcode算法根据数据特征计算出一个值,这个值有一个对数据分布进行管理的作用,可以在很快的时间内查找数据,效率比equals高,所以equals沦为了备用方法。
作者:
邵中国
时间:
2012-4-28 12:16
我看楼主理解的可以,怎么容易理解怎么来
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2