写一个数组插入的方法:
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]
两种情况的处理:
- 插入到指定位置,但是需要顺移
- 只需要插入到指定位置