【发布时间】:2018-01-02 13:53:58
【问题描述】:
我有一个 HashMap 来存储我的 <Integer, ArrayList<String>> 数据。如果地图尚不存在,我使用put(...) 在地图中添加数据。我使用containsKey() 检查条目是否 Key 已在地图中。如果它存在,我通过这样做将字符串添加到键中:
x.get(i).add(str)
为了获取数据,我只是用哈希的keySet() 进行了一个 for 循环。
如果我有这个哈希:
int -> array of strings
1 -> "a", "b", "c"
2 -> "aa", "bb", "cc"
3 -> "aaa", "bbb", "ccc"
我的问题是,读取的数据顺序不一致。 在 1 台 PC 中,它可能按以下顺序读取密钥:2、1、3。在另一台 PC 中,它可能按以下顺序读取密钥:1、2、3。
我希望它们的读取顺序在所有 PC 上都相同。它们进入hashmap的顺序也是一样的,但是为什么hashmap读取Keyset的顺序不同呢?
【问题讨论】: