【发布时间】:2020-02-16 11:19:34
【问题描述】:
我是 Java 新手,但我需要快速掌握一些基础知识才能使用一些基本的数据结构。
这是一个我想更好理解的小例子,即Map.Entry<Integer,String> 部分。
HashMap<Integer,String> my_hashmap = new HashMap<>();
my_hashmap.put(20,"twenty");
my_hashmap.put(30,"thirty");
for (Map.Entry<Integer,String> m:my_hashmap.entrySet()) {
System.out.println(m.getKey() + " " + m.getValue());
}
事实证明,我可以省略 <Integer, String> 声明,它根本没有区别。这是一个坏习惯吗?据我了解,在幕后,这在某种程度上被解释为 Object 类型,所以没有问题,但这并不能从使用泛型中受益。我的理解正确吗?谢谢。
【问题讨论】:
-
使用两个临时变量存储key&value,可以进一步看出区别。
-
一个
-Xlint:all到你的编译。这是一种原始类型。m.getKey()和m.getValue()将返回Object。
标签: java generics hashmap raw-types