数组插入 java

原文链接:https://www.hexianwei.com/2019/07/13/数组/

写一个数组插入的方法:

public class ArrayOperating {

    public static void main(String[] args) {
        ArrayOperating arrayOperating = new ArrayOperating();
        int[] array = {1, 2, 4, 5, 5};
        int[] newArray1 = arrayOperating.insertNewElement(array, 2, 999, Boolean.FALSE);
        int[] newArray2 = arrayOperating.insertNewElement(array, 2, 999, Boolean.TRUE);
        System.out.println(Arrays.toString(newArray1));
        System.out.println(Arrays.toString(newArray2));
    }

    /**
     * 数组指定位置插入元素
     *
     * @param index 位置
     * @param value 值
     * @param order 是否按照之前的顺序排列
     */
    private int[] insertNewElement(int[] array, int index, int value, boolean order) {
        int length = array.length;
        if (index > length - 1) {
            return array;
        }
        int[] newArray = Arrays.copyOf(array, length + 1);
        if (order) {
            for (int i = length; i > index; i--) {
                newArray[i] = array[i - 1];
            }
            newArray[index] = value;
        } else {
            newArray[length] = newArray[index];
            newArray[index] = value;
        }
        return newArray;
    }
}

执行结果:

[1, 2, 999, 5, 5, 4]
[1, 2, 999, 4, 5, 5]

两种情况的处理:

  • 插入到指定位置,但是需要顺移
  • 只需要插入到指定位置

你可能感兴趣的:(算法,java)