创建Hashmap的对象并将其分配给地图引用。为什么?

时间:2012-05-05 07:09:05

标签: java

为什么我们使用,

映射abc = new HashMap(20);

而不是

HashMap abc = new HashMap(20);

请帮助我找出这两者之间的差异。

非常感谢您的帮助。

1 个答案:

答案 0 :(得分:5)

在第一种情况下,abc变量的类型为HashMap,它是Map接口的实现。如果您稍后改变主意并希望使用TreeMap,则必须在代码中更改对HashMap的许多引用,并且您可能使用了HashMap的特性通用Map操作就足够了。

如果使用Map接口作为变量的类型,则可以轻松更改实现。 设计类以供重用时,这很重要。如果您有一个以Map为参数的方法,则任何Map实现都可用于调用您的方法。因此,调用者可以自由使用最合适的实现。