HashMap遍历输出结果到底是有序还是无序的?

在所有能搜索到的资料中说的都是hashmap遍历结果是不按存入顺序取出的,但是我尝试了包括iterator迭代器遍历,增强for遍历, 包括尝试了存入各种数量的key,遍历出来的结果都是有序的,代码如下:

 


import java.util.HashMap;
import java.util.Map;

public class test1 {
    public static void main(String[] args) {
            Map<String, Integer> map = new HashMap<>();
            // 添加元素到Map中
            map.put("A", 1);
            map.put("B", 3);
            map.put("C", 42);
            map.put("D", 25);
            map.put("E", 26);
            map.put("F", 2);
            map.put("G", 2);
            map.put("H", 27);
            map.put("I", 28);
            map.put("J", 2);
            map.put("K", 2);
            map.put("L", 2);
            map.put("M", 29);
            map.put("N", 20);
            map.put("O", 2);
            map.put("P", 2);
            map.put("Q", 2);
            map.put("R", 2);
            
            // 遍历Map并输出结果
            for (String key : map.keySet()) {
                System.out.print(key + ":" + map.get(key) + ", ");
            }
        }
    }

输出结果是有序的;

A:1, B:3, C:42, D:25, E:26, F:2, G:2, H:27, I:28, J:2, K:2, L:2, M:29, N:20, O:2, P:2, Q:2, R:2, 

问了一下chatGPT,它的回答是java8之后hashmap底层会维护一个双向链表 保证了hashmap的有序性,前提是没有发生哈希碰撞.但让他举两个证明输出结果是无序的例子,全是错的

有没有大佬可以写个遍历hashmap结果是无序的代码啊,或者说一下hashmap到底是有序的还是虚无的

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值