2 回答
长风秋雁
TA贡献1757条经验 获得超7个赞
你是遇到巧合了吧,例如使用如下代码输出:
123456789 | public static void main(String[] args) { Map<String, String> map = new HashMap<>(); for ( int i = 0 ; i < 10 ; i++) { map.put(i + "" , i + "" ); } for (String key : map.keySet()) { System.out.println(key); } } |
但是你再试试下面这段代码输出就和输入顺序不一致了:
123456789 | public static void main(String[] args) { Map<String, String> map = new HashMap<>(); for ( int i = 8 ; i < 15 ; i++) { map.put(i + "" , i + "" ); } for (String key : map.keySet()) { System.out.println(key); } } |
前面之所以有序是因为这些key通过哈希后也是连续的,遍历时就变成有顺序了。
慕桂英4014372
TA贡献1871条经验 获得超13个赞
HashMap输出的无序的,因为哈希算法存值和取值的时候没有顺序性。 想做到先进先出,之类的顺序。要用 LinkedHashMap 或TreeMap
添加回答
举报
0/150
提交
取消