interface outInterface{
interface ccls{
void innerInterface();
}
   void outInterface();
}可以这样实现内部借口
  class test2 implements InterfaceTest.ccls{ public void innerInterface() {
}

}外部引用很像内部类 但又不同  哪位兄弟能给说明下这个内部接口的作用和意义啊```因为我看到Map接口中定义了一个内部接口
 interface Entry<K,V> {
    
K getKey();    
V getValue();    
V setValue(V value);
boolean equals(Object o); int hashCode();
    }
顺便有人也给我介绍下Entry这个接口的作用和意义啊``

解决方案 »

  1.   

    其实接口在内部声明和外部声明没什么大区别(内部非静态类就不同了,必须用Object.new InnerObject()来创建),你可以把内部接口当成一个普通的接口来看.不Entry接口是一个模板且与Map接口模板的参数相关,这样就必须要在内部声明了.它的作用是定义一个与Map接口健值对相配合的元数据接口,每个Entry代表一个<健,值>对,只不过在不同的Map实现时,会相应的实现一个与之配套的Entry类罢了.
      

  2.   

    感觉和Set<Map.Entry<K, V>> entrySet();这个方法有关系吧.
    Map实现类中具体的数据就是以Entry作为条目来组织的.
    比如HashMap 中就有这个实现
    static class Entry<K,V> implements Map.Entry<K,V> {
      

  3.   

    Entry支持泛型,当map中存储的对象值不确定时可以用Entry来逐一取值,例如HashMap<Date,String> cpuMap = new HashMap<Date,String>();...//只能通过Map.entrySet()方法获取Entry的集合,然后用iterator来逐一取值Iterator<Entry<Date, String>> it = cpuMap.entrySet().iterator();
       long current = System.currentTimeMillis();
       while (it.hasNext()) {
        Entry<Date, String> entry = it.next();
        if (current - entry.getKey().getTime() > MAX_TIME) {
         it.remove();
        }
       }//蓝色部分提取出Date对象
      

  4.   

    3楼的,那就不用帖子了啊 总是baidu,也不是办法啊,还是这里学习比较好的。
      

  5.   

    模板的目的是为了适应各种数据类型(不必为每种数据类型都写一个Map),至于定义Entry接口的目的则是为了定义Map中可存放数据的对象特征.也是为了规范对Map元数据的操作,同时也为了对用户隐藏了Entry的实现细节(如我们map.entrySet()方法,不需要关心取出的Entry是哪种实现,不论哪种实现,都一定会有一个Iterator方法的).