语言 java
Map<String,String> map =null;
map=new HashMap<String,String>();
Map<String,String> map = new HashMap<String,String>();
两者有何区别?具体用在什么样的场景?
Map<String,String> map =null;
map=new HashMap<String,String>();
Map<String,String> map = new HashMap<String,String>();
两者有何区别?具体用在什么样的场景?
没什么区别啊...
第一个map对象你在声明的时候让他直接指向null,然后又让他指向新创建的HashMap<String,String>类型的对象,第二个map对象你在声明的时候就直接创建了一个HashMap<String,String>类型的对象,并让map指向它。
没什么具体的区别. 就只是创建对象的步骤分开还是一步完成了而已.
具体用在哪, 还是根据逻辑需要而已.
比如说
Map<String,String> map =null;
if(#&%$&%#@){
map=new HashMap<String,String>();
}
else{
sysout("#^%^$@#$$$");
}
if(map==null)
{// 逻辑..}
else{// 逻辑...}
这种..之类的情况下... 也就是说 map=null 是你逻辑上的一种可以作为 判断逻辑怎么走的一种条件 的时候, 可以这么分开写.
这个在idea等有些编辑器上会有提示=null是多余的没有用,如果你的返回值是这个 可以根据不同的条件去获取不同的hashmap,这时候需要在方法开始的时候声明一个局部变量,这样就可以在返回值直接返回这个map
15 回答8.4k 阅读
8 回答6.2k 阅读
1 回答4k 阅读✓ 已解决
3 回答6k 阅读
3 回答2.2k 阅读✓ 已解决
2 回答3.1k 阅读
2 回答3.8k 阅读
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根据需要使用在不同的场景