Java hashmap.keyset()是否会按键添加到hashmap的顺序返回键?

Java hashmap.keyset()是否会按键添加到hashmap的顺序返回键?,java,Java,我知道.keySet()返回一个未排序的集合 据我所知,这意味着我需要保留一个键数组列表,以便跟踪键添加到hashmap的顺序,对吗 […]这意味着我需要保留一个键数组列表,以便跟踪键添加到hashmap的顺序,对吗 是的,没错。或者,你可以用一个能为你做这件事的 从文件中: […]此实现与HashMap的不同之处在于,它维护一个贯穿其所有条目的双链接列表。此链表定义了迭代顺序,通常是将键插入贴图的顺序(插入顺序)。[……] 另一种可能是树形图。请注意,所有这些类所做的只是保证迭代是有序的,而不

我知道
.keySet()
返回一个未排序的集合

据我所知,这意味着我需要保留一个键数组列表,以便跟踪键添加到hashmap的顺序,对吗

[…]这意味着我需要保留一个键数组列表,以便跟踪键添加到hashmap的顺序,对吗

是的,没错。或者,你可以用一个能为你做这件事的

从文件中:

[…]此实现与HashMap的不同之处在于,它维护一个贯穿其所有条目的双链接列表。此链表定义了迭代顺序,通常是将键插入贴图的顺序(插入顺序)。[……]


另一种可能是树形图。请注意,所有这些类所做的只是保证迭代是有序的,而不是保证keySet()返回的集合具有任何特定的顺序。我如何重写Removeedestentry,使它只按插入顺序--而不是访问顺序?嗯,不确定访问顺序是什么意思。最老的条目可能是第一次插入的键。@TedHopp,TreeMap不关心插入顺序。好的。因此,如果我使用linkedhashmap,默认情况下它是按插入顺序进行的。不过,这可能是对“HashMap的键集方法的行为”的评论。