避免Map容器key重复时对value造成数据覆盖:IdentityHashMap的使用

在Map容器使用过程中出现一个问题,同一个变量名充当Key的话后面的数据会覆盖前面循环的数据

经查证发现存在IdentityHashMap这个容器,可以避免相同Key的数据覆盖

Map<String, Object>[] data = new IdentityHashMap[20];
        int[] curr = new int[10];
        int len = lastinfo.size();
        System.out.println(len);
        //十条数据一页
        int cnt = 0;
        i = 0;
        while (i < len) {
            List<hotelInfo> hotel = new ArrayList<hotelInfo>();
            curr[cnt]=cnt + 1;
            for (i = cnt * 10; i < (cnt+1) * 10; i++) {
                if (i >= len)
                    break;
                hotel.add(lastinfo.get(i));
            }
            System.out.println(hotel);
            if (hotel.isEmpty())
                break;
            data[cnt] = new IdentityHashMap<String, Object>();
            data[cnt].put("curr", curr[cnt]);
            data[cnt].put("all", len);
            data[cnt].put("info", hotel);
            cnt++;
        }

关键是while循环中的hotel初始化,让IdentityHashMap识别为不同的Key

参考网址:IdentityHashMap和HashMap的区别

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值