我想在arraylist和hashmap中添加值。虽然我添加了值,但我注意到地图在前面添加了值并且列表最后添加了值。但是我希望两者都以一种方式添加。如何做这一点。
我在hashmap中添加的值是4055,5040 并在我的名单20,37
但是添加列表会给出预期的结果,但是map会将输出显示为5040,4055。
答案 0 :(得分:3)
使用LinkedHashMap
代替HashMap
。前者保留了元素插入的顺序。
来自JavaDoc(强调我的):
Map接口的哈希表和链接列表实现,具有可预测的迭代顺序。此实现与HashMap的不同之处在于它维护了一个贯穿其所有条目的双向链表。此链接列表定义迭代排序,通常将键插入到地图中的顺序(插入顺序)。
这将使您的Map
和List
(由ArrayList
支持)的元素具有相同的顺序。
不确定您是如何设计应用程序的,但我建议您以接口(Map
,List
等...)编程,而不是类(HashMap
,{ {1}}等等......)更多信息:What does it mean to "program to an interface"?