好吧,我有一个原始对象数组,因为我无法从数组中删除它们,所以我将对象在数组中的位置更改为 null。但是,如果我想通过以下方式遍历数组中的每个对象:
for (Derp derp : derps){
derp.herp++;
}
我必须做这样的事情吗?
for (Derp derp : derps){
if (derp != null){
derp.herp++;
}
}
或者我第一种方式会好吗?for 循环是否会“知道”它只需要遍历 Derp 对象,而不是 null 对象,因为我已将其声明为 Derp 对象?或者它只是将它视为一个 Derp 对象,因为我已经说过它会这样,并且当它尝试迭代非 Derp 对象时会导致错误?还是 null 仍然是一个 Derp 对象,只是一个为 null 的对象?它是什么,我可以使用什么代码?
或者,如何从原始数组中删除对象而不留下空对象并实际缩短原始数组的长度?