Мне нужно иметь возможность удалять элементы из списка и вставлять их обратно, сохраняя тот же порядок. Мой список начинается с начального набора предметов. Новые предметы не могут быть вставлены. Таким образом, добавленные элементы и максимальное количество элементов остаются неизменными.
Пример:
Мой первоначальный список выглядит следующим образом
0=201, 1=402, 2=952, 3=101, 4=-54, 5=0
Если я удаляю элементы в 2, 4 позиции, у меня есть
0=201, 1=402, 3=101, 5=0
Но, когда я добавляю элементы удаленных позиций обратно в список; {2, 4}, у меня есть
0=201, 1=402, 3=101, 5=0, 2=952, 4=-54
Я хочу, чтобы элементы были добавлены в начальном порядке. т.е.
0=201, 1=402, 2=952, 3=101, 4=-54, 5=0
Они должны быть в том порядке, в котором они были удалены. Это только пример, эти значения не могут быть отсортированы. Они в том порядке, в котором они были добавлены.
Если вы предлагаете использовать резервный список оригиналов, как определить правильные соседние позиции в текущем списке? Таким образом, если в исходном списке 6 элементов, а значение -54
имеет индекс 4
. Я удаляю {2, 3, 4} пунктов из списка. Размер нового списка меняется на 3. Я не могу добавить элемент с индексом 4
в исходном списке в новый список с индексом 4
. Новый список будет содержать только {0, 1, 2} в качестве допустимых позиций. Кроме того, это может даже не поддерживать порядок.
Итак, вопрос в том, как удалить и добавить элементы в список и убедиться, что порядок сохранен?
Кроме того, если это быть сделано с LinkedList? Если да, то как?
Редактировать: Исходный список представляет собой ArrayList. Я не могу изменить этот тип. Конечно, после определения правильного индекса мне нужно будет кормить его предметами из другой коллекции.