Как переместить элемент массива на другой индекс в Java?

К примеру есть массив:
List<RowItem> data = new ArrayList<RowItem>();

С 5 элементами
data.add(new RowItem("Элемент: 0"));
data.add(new RowItem("Элемент: 1"));
data.add(new RowItem("Элемент: 2"));
data.add(new RowItem("Элемент: 3"));
data.add(new RowItem("Элемент: 4"));


Нужно переместить - "Элемент: 3" на вторую позицию, чтобы получилось:
"Элемент: 0"
"Элемент: 3"
"Элемент: 1"
"Элемент: 2"
"Элемент: 4"

Пробовал удалить и добавить по индексу,
RowItem item = data.get(3); // Получаю объект "Элемент: 3" 
data.remove(3);
data.add(1, item);

но после удаления объект пропадал и ссылка стала - null.

Также делал с помощью метода set, но он меняет позиции местами а мне нужно чтобы добавился на вторую позицию, а "Элемент: 1" переместился на index 2.

RowItem row = data.get(indexOne);
data.set(indexOne, data.get(indexTwo));
data.set(indexTwo, row);


абсолютно тоже что и:
Collections.swap(data, 1, 3);

Как правильно перемещать объекты в массиве?
  • Вопрос задан
  • 8926 просмотров
Решения вопроса 1
UserAlexandr
@UserAlexandr Автор вопроса
RowItem item = data.remove(3);
data.add(1, item);
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
alexeygrigorev
@alexeygrigorev
Переворачиватель пингвинов
Collections.swap(data, 3, 2)
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы