Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我们为什么使用,
映射 abc = new HashMap(20);
代替
HashMap abc = new HashMap(20);
请帮我找出这两者之间的区别。
将不胜感激。
在第一种情况下,abc变量的类型是HashMap,它是Map接口的实现。如果您稍后改变主意并想使用TreeMap例如,您将不得不更改HashMap代码中的许多引用,并且您可能使用HashMap了泛型Map操作足够的特性。
abc
HashMap
Map
TreeMap
如果您使用Map接口作为变量的类型,则可以轻松更改实现。当您设计类以供重用时,这一点很重要。如果您有一个采用Mapas 参数的方法,则任何Map实现都可以用来调用您的方法。因此,调用者可以自由使用最合适的实现。