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

Har*_*ngh 74 java arraylist

假设我有一个大小为n的对象的ArrayList.现在我想在特定位置插入另一个对象,假设在索引位置k(大于0且小于n)并且我希望在索引位置k处和之后的其他对象向前移动一个索引位置.那么有没有办法直接在Java中这样做.实际上我想在添加新对象时保持列表排序.

Clo*_*ble 139

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

public void add(int index, E element)
Run Code Online (Sandbox Code Playgroud)

此方法将移动列表的后续元素.但是你无法保证List会保持排序状态,因为你插入的新对象可能会根据排序顺序位于错误的位置.


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

public E set(int index, E element)
Run Code Online (Sandbox Code Playgroud)

此方法使用指定的元素替换列表中指定位置的元素,并返回先前在指定位置的元素.

  • @Harsh实际上没有什么可考虑的 - 文档对这个方法的作用非常具体http://download.oracle.com/javase/6/docs/api/java/util/ArrayList.html#add(int, E) (8认同)

Jal*_*tre 61

这是在特定索引处插入的简单arraylist示例

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]
Run Code Online (Sandbox Code Playgroud)

  • 我更喜欢这个答案,因为它显示了调用的结果. (6认同)