Map.Entry<K,V>
实际上是内部的一个静态类,作用是封装Map集合中的一组“键值对对象”。
从源码简单来看,这个内部类是如下的结构:
// 基于jdk1.8
// 代码是简写,抽出有意义部分
// 接口中如下:
interface Map<K,V>{
interface Entry<K,V>{
}
}
// 实现类中如下:
class HashMap<K,V> implements Map<K,V>{
static class Node<K,V> implements Map.Entry<K,V>{
}
}
因而,平常我们见到的Map.Entry<K,V>
和Entry<K,V>
的用法都是正确的。前者是父类引用指向子类对象,后者是直接获取子类对象,达到的效果其实是相同的。后者可采用jdk1.5的新特性静态导入的导包方式。(但从运用上看,似乎不静态导入也是没有问题的)