这实际上取决于您需要哪种类型的安全性。最好的非通用方式是:
Map x = new HashMap();
请注意,
x键入为
Map。这使将来更改实现(更改为
TreeMap或
linkedHashMap)变得容易得多。
您可以使用泛型来确保一定级别的类型安全:
Map<String, Object> x = new HashMap<String, Object>();
在Java 7及更高版本中,您可以执行
Map<String, Object> x = new HashMap<>();
上面虽然比较冗长,但却避免了编译器警告。在这种情况下的内容
HashMap可以是任意
Object,这样可以
Integer,
int[]等这是你在做什么。
如果您仍在使用Java 6,则Guava库(尽管很容易自己做)具有一种称为的方法
newHashMap(),该方法可以避免在执行时复制通用类型信息
new。它从变量声明中推断类型(这是Java
7之前的构造函数不可用的Java功能)。
顺便说一句,当您添加一个int或其他原始类型时,Java会将其自动装箱。这意味着该代码等效于:
x.put("one", Integer.valueOf(1));您当然可以将a
HashMap作为值放置在另一个值中
HashMap,但是我认为如果递归地进行操作(将
HashMapa作为值本身放置)会出现问题。



