2012-03-14 79 views

回答

2

使用接口的想法是允许程序使用任何Map实现。原则上你可能希望稍后用-say-一个TreeMap来替换HashMap,如果程序的其余部分只假定它是一个Map,那么这个替换是很简单的。

1

如果程序员宣称mapHashMap那么程序员可能会无意中使用som HashMap特定的方法或字段。然后程序员会被卡在使用HashMap

事实上,程序员可以很容易地将其从HashMap更改为任何其他种类的Map

+0

我不认为有任何HashMap的具体方法,我不认为有任何暴露的领域。集合接口的实现主要根据其性能语言不同而不同。 – 2012-03-14 22:27:59

0

你不能实例化一个接口。这是一个契约,它说“我在这里使用的任何类将实现在接口中声明的方法”。这是java解决缺乏多重继承的方法。

@Mathias和@emory对于通常以Map = new HashMap这种方式完成的原因是正确的,无论使用何种类创建实际的地图,都可以通过TreeMap,HashMap,BidiMap或其他方式自由实现。