在Java 8中迭代HashMap时出现稳定的元素排序问题
某些测试用例在我的应用程序中失败,这取决于元素的插入顺序.它曾经在
Java 7中运行良好但是这个问题在升级到Java 8之后开始.在搜索互联网时我发现它在
article中:
有些人可以建议我 – 我怎样才能以与插入顺序相同的顺序迭代Map中的对象,考虑到我仍然在我的开发环境中使用Java 1.8? 是的,当然HashMap从未保证可以按相同的顺序检索对象,但是它曾经在java 7中工作. LinkedHashMap是否可以实现这一点? 解决方法
是的,你必须使用LinkedHashMap,它甚至在Java版本中具有稳定的迭代顺序,正如其
contract所强制执行的那样:
有几次,我们还需要跨不同Java版本的可重复迭代顺序,LinkedHashMap工作正常. TreeMap也是稳定迭代顺序的解决方案.当然,它具有对数操作时间(与LinkedHashMap中的常量相反),迭代顺序不是插入顺序而是键顺序:
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |