HashMap集合的键key有自动排序功能?(这篇是作为一个初学者的时候遇到的疑惑,整理之后没有发的,一些自己觉得有必要记录下来的遇到的疑问和解决方法)
我也是复习的时候偶然看到某个视频教程讲读取文件并按照行首的序号排序后重新写回该文件的一个案例,视频里讲的是HashMap的键有自动排序的功能。
举例:给出要读取的文件中序号为1-9乱序,用HashMap一试,这确实按照升序排好了,但其实你多增加几个序号试一下………(其实是因为HashMap存储时是根据键的hashcode值存储的,但取出的时候不能保证顺序)
你没有记错,HashMap集合是无序的,不能保证(键值对)存储和取出的顺序。所以 key没有自动排序的功能(如有概述不当或不足之处,请多多指教,一起学习吖!)。下面写一下HashMap的代码和我后来自己的解决方法:
代码
学习过程中的资料里的方法讲解:
带着疑惑试了试加入大于9的数,键就不会顺序了。使用TreeMap解决键排序:
是QQ的第一篇博文!下一篇会把整理的String底层原理、以及和StringBuffer和StringBuilder的区别等一些相关的内容再整理整理发一下,正好也在复习一下!
永远不会停下努力的脚步,因为要去追赶更好的自己👌!