假设我正在迭代一个对象数组,即
for (int r = 0; r < rows; r++) {
for (int c = 0; c < columns; c++) {
if (bricks[r][c] != null) {
bricks[r][c].draw(gl)
如果我想在某个时候销毁这个砖块,我的remove()方法是否应该将对象设为null,例如:
private void remove(GameBrick obj) {
for (int r = 0; r < rows; r++) {
for (int c = 0; c < columns; c++) {
if (bricks[r][c] != null){
if (bricks[r][c] == obj) {
bricks[r][c] = null;
}
或者它应该设置一个名为exists
的标志为false,在迭代对象时,如果bricks[r][c].exists == false
,则添加一个return
或continue
语句?
目前我的代码基于空值对象和空检查,但我后来了解到垃圾收集器并且将对象设置为null会使其更频繁地运行。
我想知道这是否正确,并且如果需要删除对象,我应该怎么做才能最好地实现它。