Предположим, что у меня есть ArrayList объектов размером n. Теперь я хочу вставить другой объект в определенную позицию, скажем, в позиции индекса k (больше 0 и меньше n), и я хочу, чтобы другие объекты в позиции индекса и после позиции k сдвигали одну позицию индекса вперед. Так что есть ли способ сделать это прямо на Java. На самом деле я хочу сохранить список отсортированным при добавлении нового объекта.
Как вставить объект в ArrayList в определенном месте
Ответ 1
Чтобы вставить значение в ArrayList по определенному индексу, используйте:
public void add(int index, E element)
Этот метод сдвинет последующие элементы списка. но вы не можете гарантировать, что список останется отсортированным, поскольку новый объект, который вы вставляете, может находиться в неправильном положении в соответствии с порядком сортировки.
Чтобы заменить элемент в указанной позиции, используйте:
public E set(int index, E element)
Этот метод заменяет элемент в указанной позиции в список с указанным элементом и возвращает элемент ранее в указанной позиции.
Ответ 2
Вот простой пример массива для вставки при определенном индексе
ArrayList<Integer> str=new ArrayList<Integer>();
str.add(0);
str.add(1);
str.add(2);
str.add(3);
//Result = [0, 1, 2, 3]
str.add(1, 11);
str.add(2, 12);
//Result = [0, 11, 12, 1, 2, 3]
Ответ 3
На самом деле способ сделать это по вашему конкретному вопросу: arrayList.add(1,"INSERTED ELEMENT");
где 1 - позиция
Ответ 4
Например:
Я хочу переместить элемент с 23-го на 1-й (индекс == 0) в arrayList, поэтому я ставлю 23-й элемент на значение temp и удалив из списка, вставьте его в 1-й список. Он работал, но не эффективнее.
List<ItemBean> list = JSON.parseArray(channelJsonStr,ItemBean.class);
for (int index = 0; index < list.size(); index++) {
if (list.get(index).getId() == 23) { // id 23
ItemBean bean = list.get(index);
list.remove(index);
list.add(0, bean);
}
}