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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 贾振凯 中级黑马   /  2013-2-25 23:10  /  2125 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

       Map类中又这么个方法:entrySet(),它返回Map中所包含的key-value对所组成的Set集合,其中Map中的每个元素,也就是key-value对,都是Map.Entry对象(Entry是Map的内部类)。
    我查看了一下JDK API 中有一个Map.Entry接口
    在它里面有这么一句话 public static interface Map.Entry<K,V>
      我想问下,这是不是说明其实Entry是Ma接口的内部接口?

3 个回复

倒序浏览
Map.Entry接口就是Map里的Entry接口

Entry是Map内部的一个接口:
  1. interface Entry<K,V>
  2. {
  3.         K getKey();

  4.         V getValue();

  5.         V setValue(V value);

  6.         boolean equals(Object o);

  7.         int hashCode();
  8. }
复制代码
回复 使用道具 举报
在Map的API文档中已有说明
嵌套类摘要
static interface Map.Entry<K,V>   映射项(键-值对)。
-------------------------------------------------------------
Map.Entry是描述Map中的键值对关系的接口类
因为Map没有迭代器,但可以通过Map.entrySet 方法返回映射的 collection 视图(Set集合),而这个集合中存放元素属于Map.Entry类。
也就是说此集合中存放着一系列Map.Entry类型的元素,这时就相当于拿到Map所在键值对的关系的对象了,
通过Map.Entry类中的方法,就可操作Map中的键值对了。
回复 使用道具 举报
没错,Entry确实是Map中的内部接口,就相当于内部类一样,可以直接访问Map中的成员。
将Eentry定义在Map的内部,有两点原因:
1、Map是存放映射的集合,是先有这个Map集合,才能有映射关系,并且这种映射关系是Map中的内部事务,所以要定义在内部。
2、这个关系可直接访问Map内部的成员,可以对键值对这个关系进行读取。
而且,HashMap是实现Map的,它的内部又有内部类实现Map.Entry这个接口的,所以都是对应的。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马