为了账号安全,请及时绑定邮箱和手机立即绑定

Java中的HashMap,为什么输出竟然是有序的

Java中的HashMap,为什么输出竟然是有序的

料青山看我应如是 2018-09-04 17:17:48
查看完整描述

2 回答

?
长风秋雁

TA贡献1757条经验 获得超7个赞

你是遇到巧合了吧,例如使用如下代码输出:

123456789public 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);    }}

但是你再试试下面这段代码输出就和输入顺序不一致了:

123456789public 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通过哈希后也是连续的,遍历时就变成有顺序了。


查看完整回答
反对 回复 2018-09-22
?
慕桂英4014372

TA贡献1871条经验 获得超13个赞

HashMap输出的无序的,因为哈希算法存值和取值的时候没有顺序性。 想做到先进先出,之类的顺序。要用 LinkedHashMap 或TreeMap

查看完整回答
反对 回复 2018-09-22
  • 2 回答
  • 0 关注
  • 5091 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信