如何在HashMap中保留插入顺序?

rea*_*ebo 456 java hashmap

我正在使用HashMap.当我遍历地图时,数据以(通常是相同的)随机顺序返回.但是数据是按特定顺序插入的,我需要保留插入顺序.我怎样才能做到这一点?

NPE*_*NPE 992

LinkedHashMap 正是你正在寻找的.

它完全是这样的HashMap,除了当你迭代它时,它呈现插入顺序中的项目.

  • @Xenione:您可以在广告订单和访问顺序之间进行选择.请参阅http://bit.ly/1jZXlCl的最后一个参数 (16认同)
  • 根据java doc,它说:这个链表定义了迭代顺序,通常是键插入映射的顺序.一般情况下都是如此.这是什么意思?订单插入不保证.... (11认同)
  • @Xenione [注意,如果将一个键重新插入到地图中,插入顺序不会受到影响],当一个键被放置两次时,第二次放置不会改变顺序,因此迭代顺序不完全是插入顺序,因为unicity键; 通常表示密钥是唯一的 (10认同)

nic*_*ild 64

HashMap 根据文档的第二行是无序的:

这个类不保证地图的顺序; 特别是,它不保证订单会随着时间的推移保持不变.

也许你可以像aix建议并使用一个LinkedHashMap或另一个有序集合. 此链接可以帮助您找到最合适的集合.