java – K和V的HashMap默认类型

我通常键入我的地图声明,但是正在做一些maint并找到一个没有输入.这让我想到了(哦不!). Map声明的认输入是什么.考虑以下:
Map map = new HashMap();
map.put("one","1st");
map.put("two",new Integer(2));
map.put("three","3rd");
for ( Map.Entry entry : map.entrySet() ){
  System.out.println(entry.getKey() + " -> " + entry.getValue());
}

Map.Entry上的类型不兼容时出现此错误.所以,如果我输入声明:

Map<Object,Object> map = new HashMap();

一切顺利.那么在声明中设置的认类型是什么?还是我错过了别的什么?

解决方法

类型是java.lang.Object.

for构造采用Iterable类型并调用其迭代器方法.由于Set没有使用泛型类型,因此迭代器返回Object类型的对象.这些需要显式转换为Map.Entry类型.

Map map = new HashMap();
map.put("one","3rd");
for (Object o : map.entrySet()) {
    Map.Entry entry = (Map.Entry) o;
    System.out.println(entry.getKey() + " -> " + entry.getValue());
}

相关文章

最近看了一下学习资料,感觉进制转换其实还是挺有意思的,尤...
/*HashSet 基本操作 * --set:元素是无序的,存入和取出顺序不...
/*list 基本操作 * * List a=new List(); * 增 * a.add(inde...
/* * 内部类 * */ 1 class OutClass{ 2 //定义外部类的成员变...
集合的操作Iterator、Collection、Set和HashSet关系Iterator...
接口中常量的修饰关键字:public,static,final(常量)函数...