浅析List中Integer类型比较的错误

相信很多人都会有想用List集合存int数据的时候(或许是用于后续遍历),初始我的第一反应是下图,

经验证会报错,虽要将int存入,但初始化时需要初始为Integer类型。正确的初始化如下


实际上是由于我的软件构造实验课lab1中一个困扰我近三个小时的程序bug,让我想到了开这样一个测试程序说明这个问题


如上图(即我的测试程序),按逻辑List中存入了同一个int类型的数据,必定是相等的,程序也没有报错,于是开始build and run,结果确非常出人意料


由于Integer是类(具体为对象),实际上相同int类型数据a进入List中时,已经被具体为两个对象,对象之间判等于应该是object.equels(object),“==”自然是不对的,作为java的初学者,我觉得很有可能遇到这个不容易被察觉的问题。

于是我改写了判等于的部分如下:


果然输出了正确结果

希望对大家有所启发(这个狡诈的小bug,在我的一个实验程序中整整花了几个小时才发现并解决!!!!!)

为此专门测试验证

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值