Это не то, что я бы делал в реальной жизни, но говорю:
LinkedList = a,b,c,d,e
и я получаю соответствующий им индекс.
Скажите, я хочу удалить b (index=1) and d (index=3)
(т.е. значения, окружающие c (index=j=2)
)
Теперь я делаю (что отлично работает):
When j=2
LS.remove(j + 1); ----> j=3 (d removed)
LS.remove(j - 1); ----> j=1 (b removed)
и b and d
удалены.
Но если, я делаю (не работает):
When j=2
LS.remove(j - 1); ----> j=1 (b removed)
LS.remove(j); ----> j=2 (d is not removed) (used j because due to above removal, LL has adjusted it self)
т.е. когда я сначала перемещаю значение, предшествующее 'c', 'd' не удаляется, и LL остается без изменений. Я думаю, я делаю то же самое.
Я что-то упускаю здесь?
UPDATE:
Итак, когда я меняю подпись public void operation(String operator, Integer j) to public void operation(String operator, int j)
, это сработало.