黑马程序员技术交流社区

标题: 关于Map.Entry [打印本页]

作者: 贾振凯    时间: 2013-2-25 23:10
标题: 关于Map.Entry
       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接口的内部接口?
作者: 吴硕    时间: 2013-2-26 00:01
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. }
复制代码

作者: 谢洋    时间: 2013-2-26 00:31
在Map的API文档中已有说明
嵌套类摘要
static interface Map.Entry<K,V>   映射项(键-值对)。
-------------------------------------------------------------
Map.Entry是描述Map中的键值对关系的接口类
因为Map没有迭代器,但可以通过Map.entrySet 方法返回映射的 collection 视图(Set集合),而这个集合中存放元素属于Map.Entry类。
也就是说此集合中存放着一系列Map.Entry类型的元素,这时就相当于拿到Map所在键值对的关系的对象了,
通过Map.Entry类中的方法,就可操作Map中的键值对了。
作者: 黄玉昆    时间: 2013-2-26 08:28
没错,Entry确实是Map中的内部接口,就相当于内部类一样,可以直接访问Map中的成员。
将Eentry定义在Map的内部,有两点原因:
1、Map是存放映射的集合,是先有这个Map集合,才能有映射关系,并且这种映射关系是Map中的内部事务,所以要定义在内部。
2、这个关系可直接访问Map内部的成员,可以对键值对这个关系进行读取。
而且,HashMap是实现Map的,它的内部又有内部类实现Map.Entry这个接口的,所以都是对应的。




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