我有一个 HashMap
,我正在向其中添加数组中的整数。键是整数,值是整数的重复次数。当我迭代 HashMap
以获取 HashMap
中的键时,它们似乎是随机顺序的。这些键的添加顺序是否有特定的顺序?这就是我迭代的方式。
Set<String> a = names.keySet();
Iterator i = a.iterator();
while(i.hasNext())
String t = (String) i.next();
最佳答案
确实,HashMap
以不确定(不可预测/不可靠)的顺序返回条目。如果您希望条目按键顺序显示(因此 2
在 3
之前),请使用 TreeMap
(javadoc)。如果您希望条目按初始插入顺序显示,请使用 LinkedHashMap
(javadoc)。
编辑添加:你说“关键是整数”,但你使用 String
到处。请注意,字符串 "123"
在字符串 "23"
之前排序,就像 "abc"
会排序在 "bc"
之前。如果您希望将 key 视为数字,例如按数字顺序排序,那么您应该使用数字类型,例如 Integer
,而不是 String
。 (从技术上讲,可以为您的 TreeMap
提供一个 Comparator<String>
,通过检查字符串值键的内容并进行整数比较来比较字符串值键,但我认为您不想这样做。)
关于java - 将整数添加到 HashMap,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12240904/