hashmap.keyset()会按照它们添加到hashmap的顺序返回键吗?

我知道.keySet()返回一个.keySet()的集合。

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

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

对,那是正确的。 或者,您可以使用LinkedHashMap为您执行此操作。

从文档:

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