起因:
在做一道算法题的时候涉及到了 HashMap 的使用,在这个时候陷入了一个误区,也就是一直认为 HashMap 的元素遍历顺序是按照它的插入顺序来的,结果导致那题一直ac不了,然后就去用 idea 测试了一个数据,结果发现其顺序是按照 key 的大小排序的。
代码:
public static void main(String[] args) {
HashMap<Character, Integer> map = new HashMap<>();
map.put('g', 1);
printMap(map);
map.put('o', 1);
printMap(map);
map.put('o', 2);
printMap(map);
map.put('g', 2);
printMap(map);
map.put('l', 1);
printMap(map);
map.put('e', 1);
printMap(map);
}
public static void printMap(HashMap<Character, Integer> map) {
for (Map.Entry entry : map.entrySet()) {
System.out.print(entry.getKey() + ":" + entry.getValue() + ", ");
}
System.out.println();
}
输出:
g:1,
g:1, o:1,
g:1, o:2,
g:2, o:2,
g:2, l:1, o:2,
e:1, g:2, l:1, o:2,
Process finished with exit code 0