一、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()方法,进行排序