999yzc亚洲城在线娱乐城java HashMap

( 999yzc亚洲城在线娱乐城 )

语言 java

Map<String,String> map =null;
map=new HashMap<String,String>;

Map<String,String> map = new HashMap<String,String>;

两者有何区别?具体用在什么样的场景?

Map<K,v> 是接口,HashMap<k,v>是实现类,Map可以有很多实现,都是Map,都要实现Map的方法,至于Map的内部需要怎么实现,是效率的考虑,HashMap就是其中一种效率比较高,使用频率比较高的Map,其他的Map还有AbstractMap, Attributes, AuthProvider, ConcurrentHashMap, ConcurrentSkipListMap, EnumMap, HashMap, Hashtable, IdentityHashMap, LinkedHashMap, PrinterStateReasons, Properties, Provider, RenderingHints, SimpleBindings, TabularDataSupport, TreeMap, UIDefaults, WeakHashMap根据需要使用在不同的场景

没有区别,只是在满足某些逻辑的时候有可能会这样处理,例如如果map是在一个for循环的外面的话

没什么区别啊…
第一个map对象你在声明的时候让他直接指向null,然后又让他指向新创建的HashMap<String,String>类型的对象,第二个map对象你在声明的时候就直接创建了一个HashMap<String,String>类型的对象,并让map指向它。

当new HashMap<String,String>的时候,同样分配内存地址给map。两者没区别。

没什么具体的区别. 就只是创建对象的步骤分开还是一步完成了而已.
具体用在哪, 还是根据逻辑需要而已.
比如说
Map<String,String> map =null;
if#&%$&%#@{
map=new HashMap<String,String>;
}
else{
sysout”#^%^$@#$$$”;
}
ifmap==null
{// 逻辑..}
else{// 逻辑…}
这种..之类的情况下… 也就是说 map=null 是你逻辑上的一种可以作为 判断逻辑怎么走的一种条件 的时候, 可以这么分开写.

没有区别,无非第二个是在创建时直接初始化了而已。

这个在idea等有些编辑器上会有提示=null是多余的没有用,如果你的返回值是这个 可以根据不同的条件去获取不同的hashmap,这时候需要在方法开始的时候声明一个局部变量,这样就可以在返回值直接返回这个map

如果你要把map的初始化放到try里面,并且finally的时候要对map做别的处理,那就需要在try外面 定义map让他等于 null

没区别,无非是一个一行代码,一个两行代码。
如果你的两行代码中间夹杂了别的代码的话那就值得好好说说了。

然而并没有什么区别。。。

(看完/读完)这篇文章有何感想! 999yzc亚洲城在线娱乐城的分享…

发表评论

电子邮件地址不会被公开。 必填项已用*标注