【问题标题】:Convert HashMap to ArrayList with identical sort [duplicate]将 HashMap 转换为具有相同排序的 ArrayList [重复]
【发布时间】:2019-03-02 16:38:53
【问题描述】:

我有以下问题:我有一个 HashMap

HashMap <String, BeanRelEstatisticaMateriaPrima> dataBeanList = new HashMap ();

我正在生成一个 iReport 报告,但要将数据发送到报告,我将 HashMap 转换为 ArrayList:

List <BeanRelEstatisticaMateriaPrima> test = new ArrayList <BeanRelEstatisticaMateriaPrima> (dataBeanList.values ());

JRBeanCollectionDataSource beanColDataSource = new JRBeanCollectionDataSource (test);

但在进行这种转变时,圣职就失去了。在哈希图中,我按字母顺序排列,例如: (A, B, C, D, E) 但在 ArrayList 中得到 (D, A, E, C, B)

有没有办法通过保持与HashMap完全相同的排序顺序来转换为ArrayList?

【问题讨论】:

  • “在哈希图中我按字母顺序排列”我不相信你会这样做。 Hashmaps 没有排序保证。也许您按该顺序插入它们;但是,它们将按迭代顺序插入到列表中。
  • 尝试使用 LinkedHashMap,而不是 hashMap。
  • TreeMap 也保留插入顺序。
  • @gawi 不,它没有。它根据自然顺序或提供的比较器进行排序。
  • 你可能是对的,我用它来确定顺序,但从来没有注意它是否是插入顺序,谢谢指出

标签: java arraylist hashmap


【解决方案1】:

HashMap 不保证顺序。如果要保留插入顺序,请使用 LinkedHashMap。

【讨论】:

  • 感谢大家的帮助。我使用了 LinkedHashMap,它是正确的。谢谢。
猜你喜欢
  • 1970-01-01
  • 2011-12-09
  • 2018-04-12
  • 2017-08-14
  • 2016-06-28
  • 2012-06-02
  • 2019-11-04
  • 1970-01-01
  • 2013-07-16
相关资源
最近更新 更多