【发布时间】:2013-12-04 01:12:32
【问题描述】:
我有以下二维数组:
private static Object[][] myClass = new Object[6][5];
我希望使用以下代码将数组中的最后一个元素 (myClass[lastIndex][all indexes] = null) 设为空:
for(int y = 0;y < 5;y++) {
myClass[5][y] = null;
}
但它似乎正在删除数组中的最后两个元素,这是什么原因造成的?
编辑:
删除前打印出数组:
one
1
1
1
1.0
two
2
2
2
2.0
three
3
3
3
3.0
four
4
4
4
4.0
five
5
5
5
5.0
six
6
6
6
6.0
在“删除”元素one之后(实际上我想通过将所有元素复制到一个索引下并将最后一个设置为空来“删除”第一个元素):
two
2
2
2
2.0
three
3
3
3
3.0
four
4
4
4
4.0
five
5
5
5
5.0
null
null
null
null
null
null
null
null
null
null
我的完整删除代码:
public void deleteStudent(int studentChoice) {
for(int i = studentChoice;i < myClass.length - 1;i++) {
myClass[i] = myClass[i+1];
}
myClassCount = myClassCount - 1;
for(int y = 0;y < 5;y++) {
myClass[5][y] = null;
}
}
int studentChoice 是数组的索引。
myClassCount 是一个变量,随着元素的添加/删除而递增/递减
【问题讨论】:
-
应该可以正常工作...您如何验证它确实删除了最后两个元素?
-
我手动打印出数组以及使用 intellij Idea 中的调试功能
-
那么问题不在于这段代码。
-
我编辑了答案以显示打印前后以及更多信息
-
所以问题可能在于您“复制”错误,而不是这段代码。
标签: java arrays multidimensional-array null