Hashmap和arraylist在java中以不同的方式添加值

时间:2013-06-10 05:29:41

标签: java arraylist hashmap

我想在arraylist和hashmap中添加值。虽然我添加了值,但我注意到地图在前面添加了值并且列表最后添加了值。但是我希望两者都以一种方式添加。如何做这一点。

我在hashmap中添加的值是4055,5040 并在我的名单20,37

但是添加列表会给出预期的结果,但是map会将输出显示为5040,4055。

1 个答案:

答案 0 :(得分:3)

使用LinkedHashMap代替HashMap。前者保留了元素插入的顺序。

来自JavaDoc(强调我的):

  

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

这将使您的MapList(由ArrayList支持)的元素具有相同的顺序

不确定您是如何设计应用程序的,但我建议您以接口(MapList等...)编程,而不是类(HashMap,{ {1}}等等......)更多信息:What does it mean to "program to an interface"?