首页 > 解决方案 > 如何将此数组向右移动

问题描述

我需要将数组 1 索引中的所有内容向右移动,所以如果我输入list.add("E", 1);,那么我应该得到A,E,B,C,D

/** Moves elements from index..rear-1 one index to the right. */

private void shiftRight(int index) {
 /** stores elements of list. */
  T[] elements;

/** index of next insertion point; number of elements in list. */
  int rear;


assert !isFull();
    // you must fill this in

      for (index = 0; index < rear-1; index++) {
         elements[index] = elements[index+1];
      }
   }

标签: java

解决方案


这是我评论的确切实施

public static void main(String[] args) {
        Integer[] baseArr = {1, 2, 8, 9};
        Integer insertedElement = 255;
        Integer insertionIndex = 1;

        Integer[] result = new Integer[baseArr.length + 1]; //create array longer by 1 element

        System.arraycopy(baseArr, 0, result, 0, insertionIndex); //copy beginning of the array to insertion point
        result[insertionIndex] = insertedElement; // insert element
        System.arraycopy(baseArr, insertionIndex, result, insertionIndex+1 , result.length - insertionIndex -1); //copy rest to the array after insertion point

        System.out.println("Input:"+Arrays.asList(baseArr));
        System.out.println("Output:"+Arrays.asList(result));
    }

有关使用的详细信息,请参见System.arraycopy


推荐阅读