以下两个声明声明之间的区别是什么:
HashMap<Character, Character> map = new HashMap<Character, Character>();
Map<Character, Character> map = new HashMap<Character, Character>();
Run Code Online (Sandbox Code Playgroud)
使用界面Map而不是HashMap在这种特殊情况下的任何优点?
在下面的例子中,Map肯定更好,因为该方法可以接受不同类型的地图吗?(如果是这样的话)
public void method(Map map){
}
Run Code Online (Sandbox Code Playgroud)
没有潜在的差异.它更多的是关于界面.使用a有一个优点Map,就是你可以将对象更改为另一种类型,Map而不会破坏使用它的代码合同.
该HashMap是的实现Map,这是Java Collections Framework的一部分.如果你决定使用HashMap,然后另一方希望有不同的东西,比如LinkedHashMap(保留迭代顺序),那么你必须改变一切.这是一个图表(礼貌ProgramCreek).

如果你关心性能,还有其他一些事情,比如计算时间的复杂性.这是一个有用的小桌子.选择正确的东西是设计和需求的问题,即你想做什么.它因项目而异.

| 归档时间: |
|
| 查看次数: |
3790 次 |
| 最近记录: |