关于Map的存储顺序 && HashMap TreeMap linkedHashMap 输入输出样例

一、HashMap

Input 1:在这里插入图片描述
Output 1:
在这里插入图片描述
相当于一个桶的容器,输入的【5 4 3 2 1 17】分别对16取模,放入相应的位置。【1 2 3 4 5】。当遇到【17】时, 17 mod 16 = 1,【1】位置上已经有【1】,【17】相当于一个 list 被挂在【1】位置后。

二、TreeMap 按key有序

  • 若用 TreeMap ,输出是按key有序的
  • 甚至treemap可以实现自定义排序
    在这里插入图片描述
    按照key倒序,结果如下:
    在这里插入图片描述

三、linkedHashMap 按插入顺序得到数据

在这里插入图片描述
linkedHashMap 按插入顺序得到数据,结果如下
在这里插入图片描述
存储机制:
在这里插入图片描述

四、Tips 总结

Map<key,value > 理论上说,无法实现按value值排序,但是可以使用以下的几个方式:

1)Map<value , key>

通过这种方式,就可以实现按照value 排序,并依次取出每个键值对。
缺点: ① 要保证value的值唯一,不重复; ② 无法按照key进行索引。
因此这个方法,只使用于特定场合。

2)Map<Item,value > === << key,value>,value >

把< key,value>封装在一起,Item < key,value>,然后对Item进行一个排序

3)用list<> 结构存储

list可以实现 Collections.sort()方法,进行排序

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值