在效率上,没有什么不同。但是推荐用下一中方法。 因为你一眼就知道map是HashMap,而不是什么其它的mappublic void a(Map); public void a(HashMap); 这2个推荐用第一个写法,应为什么map都可以传递进来使用
Map<Integer,String> map = new HashMap<Interger,String>(); HashMap<Integer,String> map = new HashMap<Interger,String>() map = new HashMap();//用这个就行了,用的都是一样 //Map是一个接口,HashMap类实现了这个接口
比如你现在使用的是HashMap,如果以后希望使用Hashtable,那只需要修改
Map<Integer,String> map = new HashMap<Interger,String>();
后面一个地方
第一种较好。第一种实际上是用了多态,也就是动态绑定,在运行期根据对象的实际类型调用其方法,也就是HashMap中的方法,假如java不存在多态的话,第一种只能调用Map的方法,因为这个引用指向的是子类对象中的父类对象。我说第一种好的原因就是,假如你用HashMap后悔了的话,想用TreeMap,只需要改构造那里就行了。多去看看多态的好处,可以说没有多态的话面向对象也不会发展到现在
在效率上,没有什么不同。但是推荐用下一中方法。 因为你一眼就知道map是HashMap,而不是什么其它的mappublic void a(Map);
public void a(HashMap);
这2个推荐用第一个写法,应为什么map都可以传递进来使用
Map<Integer,String> map = new HashMap<Interger,String>();
HashMap<Integer,String> map = new HashMap<Interger,String>()
map = new HashMap();//用这个就行了,用的都是一样
//Map是一个接口,HashMap类实现了这个接口