关于三维数组变量重置为0的注意事项

本文探讨了在编程中如何正确处理三维数组的重置,指出使用for循环new新的三维数组会导致旧值丢失的问题。通过添加简单的if判断,可以避免不断声明新数组,防止原有数据丢失。作者分享了自己花费2小时才找到的解决方案,强调了一行代码就能解决的问题可能隐藏着不易察觉的难点。
摘要由CSDN通过智能技术生成



今天下午在写代码时,用到了三维数组。i是自增的,当i=0时,一切正常,当i=1时,发现i=0数组下所有的值都为0,郁闷了2个小时,终于发现了问题。

因为每次我用for循环,都会new一个新的三维数组,i增加时,原来的三维数组被new了一下,原来的值就消失了

错误代码如何:

public int[][][] getQuarter2(String year){
		String startTime = year + "-4-1";
		String endTime = year + "-6-30";
		int[] orderId = this.getOrderId(startTime,endTime);
		
		int[][][] temp = new int[0][0][0];  //不同订单的商品信息数组
		
		for(int i=0; i<orderId.length; i++){
			
			int l = this.getGoodsInfo(orderId[i]).length;
			temp = new int[orderId.length][l][2];
			int[][] temp2 = this.getGoodsInfo(orderId[i]);  //获得商品信息数组
			for(int j=0;j<l;j++){
				temp[i][j][0] = temp2[j][0];
				temp[i][j][1] = temp2[j][1];
			}
		}
		return temp;
	}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值