hashMap动态更新对象

这篇博客探讨了在Java中使用HashMap时,如何在迭代过程中动态更新对象的问题。作者通过ExcelTest类读取Excel文件并打表展示了HashMap如何在迭代过程中覆盖旧的message内容。分析指出,HashMap底层通过对象的hashcode进行映射,导致所有映射值被同一对象更新。作者还解释了hashcode的逻辑唯一性和底层实现原理,涉及位运算、移位和掩码等概念。
摘要由CSDN通过智能技术生成
如果你创建了一个 hashMap,那么你每次打表进去一个对象message.在迭代算法中,更新messsage数据,也就是覆盖旧message的内容。
迭代完成,恭喜你,你创建的hashMap里面的每条映射都一样!
很不好意思的说。这个设计,让我蛋碎很久。不过sun公司既然这样设计,必然有好处的。里面散列数据的负载因子0.75.接近一个黄金的数据分隔比例,提高空间利用率,单单从这个设计可以看出,sun公司不是让java更加的发挥速度方面,而是让设计的数据集合能够去适合最新最和谐(包括内存&时间效率)

excelTest类,测试出来的打表
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;

import jxl.*;
import jxl.read.biff.BiffException;


public class ExcelTest {

   
    public static void main(String[] args) throws  BiffException, IOException {
        //读取指定文件
        Workbook rwb = Workbook.getWorkbook(new File("F:/user.xls"));
        //获取第几个sheet,从0开始
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值