大家都知道,HashMap是一个无序的集合,所有存入HashMap的元素都会根据它的key值对应的hashCode来映射到一个Entity数组上,而不是根据存入的顺序进行排列的。
对于一些需要使用排序的情况,HashMap是无能为力的,为了可以应对这种需要HashMap并且需要排序的情况,JDK 便推出了LinkedHashMap。LinkedHashMap继承了HashMap,通过使用一个双向链表来实现。由于是继承了HashMap,因此对于HashMap存在的问题,LinkedHashMap也自然会存在,比如不支持并发。
既然LinkedHashMap是可以排序的,那么它到底是怎么排序的呢?其实,它有两种排序的方式:
- 根据写入的顺序排序
- 根据读取的顺序排序
根据写入顺序排序,这个很好理解,几乎其他所有的有序集合都是按照这种方式来做的。对于第二种情况,是在每次使用get方法来访问LinkedHashMap中的元素时,将该元素放到集合的最后,这样多次操作之后,就会得到一个根据读取的顺序排列的集合了。
来源:CSDN
作者:昨日的桥
链接:https://blog.csdn.net/weixin_42829639/article/details/103866750