黑马程序员技术交流社区

标题: Map.EntrySet问题 [打印本页]

作者: 杨丽静    时间: 2013-11-19 16:14
标题: Map.EntrySet问题
这段代码是在看视频的过程中看到的非常的不理解还望赐教

interface Map
{
       public static interface Entry
       {
             public abstract Object getKey();
             public abstract Object getValue();
       }
}
class HashMap implements Map
{
       class Hah implements Map.Entry
       {
             @Override
             public Object getKey()
             {
                 // TODO Auto-generated method stub
                 return null;
             }
            @Override
            public Object getValue()
           {
                  // TODO Auto-generated method stub
                  return null;
            }
       }
}



作者: 简★零度    时间: 2013-11-19 17:04
这段代码是在看视频的过程中看到的非常的不理解还望赐教

interface Map//接口
{
       public static interface Entry
       {
             public abstract Object getKey();//键的抽象类
             public abstract Object getValue();//值的抽象类
       }
}
class HashMap implements Map//继承
{
       class Hah implements Map.Entry
       {
             @Override//重写键类
             public Object getKey()
             {
                 // TODO Auto-generated method stub
                 return null;
             }
            @Override//重写值类
            public Object getValue()
           {
                  // TODO Auto-generated method stub
                  return null;
            }
       }
}我也不知道你问的是什么,这个是我的理解。
作者: ReFly    时间: 2013-11-19 23:48
本帖最后由 ReFly 于 2013-11-19 23:51 编辑

这个题没办法去理解代码的细节。因为它只是一种很舒服的设计模式,让map可以方便的遍历。

首先说Map类里定义了内部接口。叫Map.Entry表示一对键值对。这是一种设计模式,因为只有Map集合里才会出现键值对这种情况。就在Map类中设计了一个内部接口。只有Map这种成对出现的类,设计个键值对表示每对键值对的内在联系。这种设计很贴切Map的特点。

而在所有的非抽象的Map子类中,需要去实现这个内部接口。使得形成一个内部类。

内部类实现后只能用通过 map集合对象调用   .entrySet();方法获得所有的键值对对象,存入set集合中。

所有的键值对对象在调用此内部类的方法(.getKey(),getValue()),就能很好的获得具体的健与值。

更明白的话可以适当看看源码。











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