HashMap的使用和了解

     基于的 Map 接口的实现。此实现提供所有可选的映射操作,并允许使用 null 值和 null 键。(除了非同步和允许使用 null 之外,HashMap 类与 Hashtable 大致相同,Hashtable因效率问题已经不提倡使用,所以现在都是使用HashMap比较多);

存储特性:

hashMap不保证映射的顺序,特别是它不保证该顺序恒久不变,即元素的排列顺序不是固定的;HashMap的主干是一个Entry(可看作键值对,方便理解)数组,Entry是HashMap的组成单位,而每一个Entry都包含一个 key-value键值对;

键值对的类型如:HashMap<Integer, String>;表示键是Integer型,值是String型;

hashMap的使用:

  1. 可以为key和value添加null;
  2. 可以添加相同的key值,但是value会被后面的覆盖掉;
  3. Value可以相同;
  4. 元素排序不固定;

hashMap添加键值对后,如何取值呢?

有3种常用的方法:

第一种:通过遍历key获取value;

第一种输出格式:

第二种:直接输出Map集合;

第二种输出格式:

第三种:直接给定key值获取value

常用的Map方法:


下面了解一下hashMap如何进行排序,因为hashMap本身是无顺序的集合,如果想排序必须要把集合转换为其他的集合,如:

因为每个集合都有它特殊之处,下面就是利用各种集合的特性去排序;

思路:HashMap—--->listhashOne(进行排序)—--->LinkedHashMap(顺序存储);

把值添加到HashMap

转化为listhashOne集合并且排序:

 

利用LinkedHashMap可顺序存储的特点,把已经排序好的listhashOne存储到LinkedHashMap中;

最后把排序好的LinkedHashMap遍历出来即可得到排序好的键值对了;

运行结果图:

return o2.getKey()-(o1.getKey());--- 表示降序;

return o1.getKey()-(o2.getKey());--- 表示升序;

注意:在这里排序的时候,key不能为空进行比较,否则报null异常,所有要进行非空判断;

温馨提示:要排序建议不要用hashMap,直接用treeMap方便省事,一步到位;这里只是应对前面已经用了hashMap进行存储键值对,无法进行更改,但是又需要进行排序,才出此下策;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值