【发布时间】:2018-01-16 15:01:22
【问题描述】:
我创建了一个对象数组(代表飞行的对象), 我正在尝试创建一种方法来从该数组中删除特定对象,而不改变它的长度。 我写了以下方法:
public boolean removeFlight (Flight f) {
for (int i = 0 ; i < _noOfFlights ; i++) {
if (_flightsSchedule[i].equals(f)) {
_flightsSchedule[i] = _flightsSchedule[(i+1)];
_noOfFlights--;
return true;
}
}
return false;
}
_noOfFlights 表示当前在数组中的对象数。 由于某种原因,当给定一个添加到数组中的对象时,它会返回“false”。
【问题讨论】:
-
覆盖
Flight中的等于 -
您的迭代变量正在增加,而条件边界正在减少......小心
-
您需要移动要删除的元素之后的所有元素,而不仅仅是下一个元素。
-
如果
Flight是数组中的最后一个对象,您的(i+1)将导致绑定异常。 -
对您的代码的一些说明: - 您应该将
{写在同一行或新行上,但要选择一个并坚持下去。 - 每个变量名和字段名(final原语除外)都应以小写字母开头。 - 请多加注意w.r.t。你的缩进。
标签: java arrays loops object for-loop