Я просмотрел этот сайт (как и в Интернете) и по какой-то причине не может найти ответ, который работает. Либо я получаю ошибку индекса за пределами границ, либо следующая часть моего кода не будет выполняться. Все, что я пытаюсь сделать, это удалить элемент из списка на Java с помощью итератора. Вот мой код:Удаление элемента из списка на Java
public boolean remove(T item) {
while (bag.iterator().hasNext()) {
T i = bag.iterator().next();
if (i.equals(item)) {
bag.iterator().remove();
return true;
}
}
return false;
}
Мой итератора наследует из моего класса «сумка», очевидно, но здесь это так:
public Iterator<T> iterator() {
return new Iterator<T>() {
private int current = 0;
public boolean hasNext() {
return current < size;
}
public T next() {
return data[current++];
}
public void remove() {
for (int i=current-1; i<size-1; i++)
data[i] = data[i+1];
size--;
}
};
}
Любая помощь очень ценится, спасибо, ребята !!
Clayton
Массив не является списком. Вы не можете выполнять те же операции в двух разных контейнерах. –
@AngeloAlvisi О чем ты говоришь? – ajb
@ajb Теги. Массив не является списком, а Iterator не является ListIterator, даже если Iterator можно использовать в списке. –