LinkedHashMap是什么?

旧城冷巷雨未停 提交于 2020-01-11 06:37:00

大家都知道,HashMap是一个无序的集合,所有存入HashMap的元素都会根据它的key值对应的hashCode来映射到一个Entity数组上,而不是根据存入的顺序进行排列的。
对于一些需要使用排序的情况,HashMap是无能为力的,为了可以应对这种需要HashMap并且需要排序的情况,JDK 便推出了LinkedHashMap
LinkedHashMap继承了HashMap,通过使用一个双向链表来实现。由于是继承了HashMap,因此对于HashMap存在的问题,LinkedHashMap也自然会存在,比如不支持并发。
既然LinkedHashMap是可以排序的,那么它到底是怎么排序的呢?其实,它有两种排序的方式:

  • 根据写入的顺序排序
  • 根据读取的顺序排序
    根据写入顺序排序,这个很好理解,几乎其他所有的有序集合都是按照这种方式来做的。对于第二种情况,是在每次使用get方法来访问LinkedHashMap中的元素时,将该元素放到集合的最后,这样多次操作之后,就会得到一个根据读取的顺序排列的集合了。
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!