JAVA进步一点点--leetcode设计题型-Map

学习思路

在leetcode中,设计题型并没有给出一个像数组、字符串等完全一致的一个讲解学习步骤,但是设计题型自我感觉是 数据结构+算法的一种结合,因此,仍然打算按照数据结构的类型来刷题学习。

Map字典类的设计题

Map接口:双列数据,存储key-value对的数据,通过IDEA查看基本类的继承关系,可以看到我们常用Map的类关系如下,选择数据结构,还是需要了解数据结构的特点,我将从键值特点、是否排序、使用范围、线程安全、执行效率几个方面对几个类进行选择。

  结构特点 排序 特点 使用范围 线程安全 执行效率 学习连接
HashMap 哈希算法:通过计算,将任意长度的字符串转换成一定长度字符串,无穷集合映射的有限空间,必然会出现哈希冲突,方法有乘法散列,除法散列,全散列等。哈希冲突解决方法一般为链表法,将hash冲突的输入用链表链起来
结构,数组+链表(当链表长度大于16时为红黑树)   数组为key的hash值%输入的长度,链表为key.value的保存结构
无序 (1)key,value都可以为null,key各不相同,value可以相同
(2)继承clonable和Serializable,可序列化,可map.clone
(3)默认大小16,扩展0.75
无序,访问速度快时使用 不安全 1
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值