java - 将整数添加到 HashMap

标签 java iterator hashmap

我有一个 HashMap,我正在向其中添加数组中的整数。键是整数,值是整数的重复次数。当我迭代 HashMap 以获取 HashMap 中的键时,它们似乎是随机顺序的。这些键的添加顺序是否有特定的顺序?这就是我迭代的方式。

       Set<String> a = names.keySet();
        Iterator i = a.iterator();

        while(i.hasNext())
            String t = (String) i.next();

最佳答案

确实,HashMap以不确定(不可预测/不可靠)的顺序返回条目。如果您希望条目按键顺序显示(因此 23 之前),请使用 TreeMap (javadoc)。如果您希望条目按初始插入顺序显示,请使用 LinkedHashMap (javadoc)。

<小时/>

编辑添加:你说“关键是整数”,但你使用 String到处。请注意,字符串 "123"在字符串 "23" 之前排序,就像 "abc"会排序在 "bc" 之前。如果您希望将 key 视为数字,例如按数字顺序排序,那么您应该使用数字类型,例如 Integer ,而不是 String 。 (从技术上讲,可以为您的 TreeMap 提供一个 Comparator<String> ,通过检查字符串值键的内容并进行整数比较来比较字符串值键,但我认为您不想这样做。)

关于java - 将整数添加到 HashMap,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12240904/

相关文章:

java - 如何实现具有多个可能重复的字符串属性的枚举类?

java - 具有更好压缩比的 GZIPInput/OutputStream 替代方案?

java - 如何自动复制数据到新的RMI线程?

python - 理解pandas中的行迭代(python)

c++ - 删除二维 vector 行中的元素 - 使用迭代器

java - 计算Java中HashMap的内存需求

java - Map的Key的大小有影响吗?

java - 使用 for 循环将节点项添加到 Java Graph

java - 如何在将 ImageIcon 放在 JButton 上之间获得延迟?

C++:迭代器适配器将迭代器限制在一系列迭代器中?