Java二维数组初始化填充后出现额外null实例的问题求助
问题分析与解决
你的填充代码本身是正确的:
Object[][] twoDarray = new Object[3][5]; for (int x = 0; x < twoDarray.length; x++) { for (int y = 0; y < twoDarray[x].length; y++) { twoDarray[x][y] = new Object(); } }
这段代码确实会遍历3×5=15个数组元素,每个位置都被赋值为新的Object实例,填充完成后数组中不存在null值。
你看到的15个对象+15个null、以及打印twoDarray[0][4]时出现对象+null的现象,问题出在你的打印代码上,而非数组填充逻辑:
出现对象+
null的重复输出,大概率是你在打印时执行了两次输出操作,比如:// 错误示例:额外打印了null System.out.println(twoDarray[0][4]); System.out.println(null);或者在遍历打印的循环中,不小心写了两次
System.out.println语句。看到15个对象+15个
null,可能是你错误地遍历了两次数组,或者同时打印了数组引用和元素(比如直接打印twoDarray本身,再遍历打印元素)。
验证方法
用以下正确的打印代码测试:
// 遍历打印所有元素 for (int x = 0; x < twoDarray.length; x++) { for (int y = 0; y < twoDarray[x].length; y++) { System.out.println(twoDarray[x][y]); } } // 单独打印指定元素 System.out.println(twoDarray[0][4]);
这段代码只会输出15行java.lang.Object@xxxxxx格式的字符串(每个Object实例的默认toString结果),不会出现null。
内容的提问来源于stack exchange,提问作者pythonoob
相关产品推荐
相关产品推荐

