浅谈Map map = new HashMap()

1.Map

在JavaSE中,对Map的实现主要包括: HashMap, TreeMap, HashTable 和 LinkedHashMap

Map map = new HashMap();

定义泛型:

Map"key-value”键值对"接口,HashMap是它的实现类

这里其实Map是你自己定义的一个接口,你调用这个接口来实现你要完成的动作,这样别人直接用你这个接口就可以了,而不用关心你具体是怎么实现这个接口的,假如以后有变动的话,你也不用再去管这个接口,只需要改你的实现类就可以了,方便维护,隔离性强。

  放值:m1.put(1,"one");

  取值:  m1.get(1);    

 

2.HashMap

HashMap继承于AbstractMap类,实现了Map接口。

HashMap就是一个散列表,它是通过“拉链法”解决哈希冲突。(哈希冲突:当我们对某个元素进行哈希运算,得到一个存储地址,然后要进行插入的时候,发现已经被其他元素占用了)也就是数组+链表的方式

HashMap map = new HashMap();

而这个 你定义的就是一个实现类,你把这个实现类给别人用,如果出现问题和改动的话,那么程序就无法运行,凡是用到这个类的地方都要修改,维护起来很麻烦,而上面的接口,你只需要改你实现这个接口的实现类就可以了。这样就是你说的降低了藕合性。
 

而且用Map的好处是new后面可以跟其他的实现,不一定是HashMap 可以跟其他的 用HashMap声明的话,new后面貌似就只能跟HashMap了

 

补充:hashmap和hashtable区别?

https://blog.csdn.net/weixin_42153410/article/details/89702954

  • 10
    点赞
  • 49
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值