Я пытаюсь удалить элемент из массива через настроенный итератор, и мне нужно удалить элемент из моего массива. Я знаю, что использовать массив не очень практично, но у меня есть некоторые ограничения по ряду причин.
Проблема в том, что я не могу создать другой массив с удаленным элементом и изменить ссылку. Потому что у меня нет реальной ссылки в настроенном классе итераторов. Мне нужно изменить реальную ссылку. Позвольте мне объяснить это лучше в коде:
public class Iterator<E>
{
private E[] buffer; // underlying buffer.
private int idx; // location of iterator in buffer.
private E last_element; // last element returned by this iterator.
public Iterator(E[] arr)
{
buffer = arr;
idx = 0;
}
/**
* Removes from the underlying collection the last element returned
* by this iterator.
*/
public void remove()
{
...
}
}
Я могу создать копию буфера с удалением указанного элемента и изменить ссылку на буфер на него. Но я хочу, чтобы это удаление действовало на реальный массив. Так что я
на самом деле нужно изменить обр [].
Опять же, я знаю, что все это использование массива бессмысленно при наличии иерархии Collection, но мне нужен способ для этого таким образом. Ссылка на ссылку не является хорошей терминологией в этом случае, но у меня была реализация для этого в C ++, и я искал что-то вроде указателя на указатель.
Заранее спасибо.