【发布时间】: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 不,它没有。它根据自然顺序或提供的比较器进行排序。
-
你可能是对的,我用它来确定顺序,但从来没有注意它是否是插入顺序,谢谢指出