A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 刘晓康 中级黑马   /  2012-4-3 19:56  /  1771 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

Map<k,v>
这里面的值和键到底怎样理解,
感觉比其他的集合Set泛型有点差别

3 个回复

倒序浏览
从字面可这样看:k-key,v-value,<k,v>表示k和v一一对应的关系,强调的是关系,他们是一个整体,是双列集合。生活中的map地图中,地图上的每一个点,表示地球上的一个地方,也是一一对应的关系。
回复 使用道具 举报
K表示键,V表示值,键和值是对应关系,成对存在的,不允许出现重复的键.
毕老师的比喻太好了,键相当于结婚证,值相当于夫妻,结婚证和夫妻是对应关系,不可能一张结婚证对应两对夫妻
回复 使用道具 举报
Map
     数学中的映射关系在Java中就是通过Map来实现的。它表示,里面存储的元素是一个对,我们通过一个对象,可以在这个映射关系中找到另外一个和这个对象相关的东西。
      前面提到的我们对于根据帐号名得到对应的人员的信息,就属于这种情况的应用。我们讲一个人员的帐户名和这人员的信息作了一个映射关系,也就是说,我们把帐户名和人员信息当成了一个“键值对”,“键”就是帐户名,“值”就是人员信息。下面我们先看看Map 接口的常用方法。
常用方法
     Map 接口不是 Collection 接口的继承。而是从自己的用于维护键-值关联的接口层次结构入手。按定义,该接口描述了从不重复的键到值的映射。
     我们可以把这个接口方法分成三组操作:改变、查询和提供可选视图。
     改变操作允许您从映射中添加和除去键-值对。键和值都可以为 null。但是,您不能把 Map 作为一个键或值添加给自身。
     Object put(Object key,Object value):用来存放一个键-值对Map中
     Object remove(Object key):根据key(键),移除一个键-值对,并将值返回
     void putAll(Map mapping) :将另外一个Map中的元素存入当前的Map中
     void clear() :清空当前Map中的元素
     查询操作允许您检查映射内容:
     Object get(Object key) :根据key(键)取得对应的值
     boolean containsKey(Object key) :判断Map中是否存在某键(key)
     boolean containsValue(Object value):判断Map中是否存在某值(value)
     int size():返回Map中 键-值对的个数
     boolean isEmpty() :判断当前Map是否为空
     最后一组方法允许您把键或值的组作为集合来处理。
     public Set keySet() :返回所有的键(key),并使用Set容器存放
     public Collection values() :返回所有的值(Value),并使用Collection存放
     public Set entrySet() :返回一个实现 Map.Entry 接口的元素 Set
     因为映射中键的集合必须是唯一的,就使用 Set 来支持。因为映射中值的集合可能不唯一,就使用 Collection 来支持。最后一个方法返回一个实现 Map.Entry 接口的元素 Set。
     我们看看Map的常用实现类的比较,如下表:
      Map,保存键值对成员,基于键找值操作,使用compareTo或compare方法对键进行排序
      HashMap,能满足用户对Map的通用需求 键成员可为任意Object子类的对象,但如果覆盖了equals方法,同时注意修改hashCode方法。
     TreeMap,支持对键有序地遍历,使用时建议先用HashMap增加和删除成员,最后从HashMap生成TreeMap; 附加实现了SortedMap接口,支持子Map等要求顺序的操作 键成员要求实现Comparable接口,或者使用Comparator构造TreeMap键成员一般为同一类型。
     LinkedHashMap,保留键的插入顺序,用equals 方法检查键和值的相等性 成员可为任意Object子类的对象,但如果覆盖了equals方法,同时注意修改hashCode方法。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马