如何在一个ArrayList的特定位置插入一个对象

假设我有一个大小为n的对象的ArrayList。 现在,我想插入一个特定位置的另一个对象,比如在索引位置k(大于0小于n),我希望位于索引位置k之后的其他对象向前移动一个索引位置。 那么有什么方法可以直接在Java中做到这一点。 其实我想保持列表sorting,而添加新的对象。

要在特定索引处值插入ArrayList,请使用:

public void add(int index, E element) 

这个方法将会移动列表的后续元素。 但不能保证列表将保持sorting,因为您插入的新对象可能会按照sorting顺序位于错误的位置。


replace指定位置的元素,请使用:

 public E set(int index, E element) 

该方法用指定的元素replace列表中指定位置的元素,并返回之前在指定位置的元素。

下面是在特定索引处插入的简单数组列表示例

 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] 

实际上在你的具体问题上做的方法是arrayList.add(1,"INSERTED ELEMENT"); 其中1是位置

例如:

我想在arrayList中将元素从第23位移动到第1位(索引== 0),所以我把第23个元素放到一个临时值中,并从列表中删除,将它插入到列表中的第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); } }