为什么常用 Map<> map = new HashMap()
程序员文章站
2022-09-13 21:00:08
在初学Java的时候,经常能看到教材上的写法,使用了接口Map来引用一个map,而不是它的具体实现,那么这样做的好处是什么呢? 第52条:通过接口引用对象 作者认为,如果有合适的接口类型存在,那么对于参数、返回值、变量和域来说,就都应该使用就接口类型进行声明。 只有当 ......
在初学java的时候,经常能看到教材上的写法,使用了接口map来引用一个map,而不是它的具体实现,那么这样做的好处是什么呢?
<effective java>第52条:通过接口引用对象
作者认为,如果有合适的接口类型存在,那么对于参数、返回值、变量和域来说,就都应该使用就接口类型进行声明。
只有当你利用构造器创建某个对象的时候,才真正需要引用这个对象的类。
// 一个好的栗子
map<integer,string> map = new hashmap<>();
//一个不那么好的栗子
hashmap<integer,string> map = new hashmap<>();
这样做的好处在于:你的程序会更灵活。当你决定更换实现的时候,所要做的就只是:改变构造器中类的名称。就比如:
map<integer,string> map = new treemap<>();
如果不这么做,在最早就使用了hashmap来声明了map,如果客户端在其他地方,使用了hashmap的操作,那么后续若改动了,则无法通过编译了。
总结:用接口引用对象会使程序更加灵活。
推荐阅读
-
map接口的实现类(详解java常用工具类)
-
java常用工具类 UUID、Map工具类
-
走进Java Map家族 (1) - HashMap实现原理分析
-
Jsの练习-数组其他常用方法 -map() ,filter() ,every() ,some()
-
ES6学习教程之Map的常用方法总结
-
map的常用方法
-
Java基础之Collections框架Map接口实现类HashMap及其源码分析(1)
-
为什么常用 Map<> map = new HashMap()
-
Java中常用数据结构的实现类 Collection和Map 数据结构JavaJ#算法游戏
-
HashMap LinkedHashMap TreeMap Map 区别