0

我想在arraylist和hashmap中添加值。当我添加值时,我注意到map在前面添加值并最后列出添加值。但我希望两者都以一种方式添加。如何做到这一点。

我要在 hashmap 中添加的值是 4055,5040 而在我的列表中是 20,37

但是,虽然添加列表给出了预期的结果,但映射给我的输出为 5040,4055。

4

1 回答 1

3

使用LinkedHashMap而不是HashMap. 前者保留了元素的插入顺序。

从它的JavaDoc(强调我的):

Map 接口的哈希表和链表实现,具有可预测的迭代顺序。此实现与 HashMap 的不同之处在于它维护一个双向链表,该列表贯穿其所有条目。这个链表定义了迭代顺序,通常是键插入映射的顺序(插入顺序)。

这将使您Map和您的List(由 an 支持ArrayList)具有相同order的元素。

不知道您是如何设计您的应用程序的,但我建议您使用面向接口(MapList等...)而不是类(HashMapArrayList等...)的程序。更多信息:“编程到接口”是什么意思?

于 2013-06-10T05:30:24.417 回答