如果在某个索引位置插入一个元素,则将数组元素移动到下一个位置

时间:2015-07-27 08:27:46

标签: java

下面是我的输入数组

int[] myarray= {1,2,3,4,5,6,7};

int inputNo=10;   // value to be inserted

int index=3;       // position to be inserted

然后输出,

{1,2,3,10,4,5,6,7}

3 个答案:

答案 0 :(得分:2)

int[] insertedArray = new int[myarray.length+1];
System.arrayCopy( myarray, 0, insertedArray, 0, index );
System.arrayCopy( myarray, index, insertedArray, index+1, myarray.length-index);
insertedArray[index] = inputNo;

也许,取决于具体情况......

myarray = insertedArray

答案 1 :(得分:0)

也许您应该使用LinkedList(为了保持顺序)而不是数组。

LinkedList有一种方法可以将数据放在特定的索引上。

    List<Integer> list = new LinkedList<>();
    list.add(index, element);

答案 2 :(得分:0)

length of an array is immutable 。创建数组后,我们无法更改数组的大小。

public static void main(String[] args) {
        List<Integer> myList = new ArrayList<Integer>();
        myList.add(1);
        myList.add(2);
        myList.add(3);
        myList.add(4);
        myList.add(5);
        myList.add(6);
        myList.add(7);

        System.out.println(Arrays.toString(myList.toArray()));
        myList.add(3, 10);// index 3, value 10
        System.out.println(Arrays.toString(myList.toArray()));
    }

<强>输出

[1, 2, 3, 4, 5, 6, 7]
[1, 2, 3, 10, 4, 5, 6, 7]