温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

java中的HashMap与LinkedHashMap有什么区别

发布时间:2020-06-26 14:41:48 来源:亿速云 阅读:227 作者:Leah 栏目:编程语言

java中的HashMap与LinkedHashMap有什么区别?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

HashMap

hashMap是最常用的Map,根据键的HashCode值存储数据,可以根据键直接获取它的值,具有很快的访问速度,遍历时候的顺序是完全随机的。HashMap只允许一个键为Null,允许多个值为Null。

特性: 完全随机

优点: 随机访问,取值速度快

缺点: 多个线程同时写HashMap可能导致数据不一致,如果需要同步,使用Collection的synchronizedMap方法或者使用ConcurrentHashMap

LinkedHashMap

LinkedHashMap是HashMap的一个子类,保存了记录的插入顺序,与HashMap的随机遍历不同,在用Iterator遍历的时候,先得到的记录肯定是先插入的,类似于python中的OrderedDict。

遍历速度会比HashMap慢,不过有一种情况例外: 当HashMap的容量很大,实际数据很少时 , 因为HashMap的遍历速度和它的容量有关,而LinkedHashMap只跟实际数据量有关。

TreeMap

TreeMap实现SortMap接口,能够将它保存的记录按键排序,默认是按键的升序排列,也可以指定排序的比较器,遍历TreeMap的时候,得到的记录是按照键排过序的。

根据数据选择Map

一般情况下,我们用的最多的是HashMap,在Map中插入、删除和定位元素,HashMap 是最好的选择。但如果您要按自然顺序或自定义顺序遍历键,那么TreeMap会更好。如果需要输出的顺序和输入的相同,那么用LinkedHashMap可以实现,它还可以按读取顺序来排列。

关于java中的HashMap与LinkedHashMap有什么区别问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注亿速云行业资讯频道了解更多相关知识。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI