public class Test {
public static void main(String[] args) {
//定义一个数组
int[] array = new int[]{1,2,4};
//int array[] = {0,1,2,4};
//向数组的特定位置添加一个数据
int[] newArray = addArray(2 ,3,array);
System.out.println(Arrays.toString(newArray));//输出结果:[1, 2, 3, 4]
//删除数组特定位置的一个数据
int[] arrNew = delete(3,array);
System.out.println(Arrays.toString(arrNew));//输出结果:[1, 2]
}
/**
*
* @param index 数组下标
* @param value 添加的值
* @param array 数组
* @return
*/
public static int[] addArray(int index, int value, int array[]){
/**
* 已知数组中在指定位置添加一个元素,那么在这位置的数据元素就会被替换掉
* 解决方法:1、创建一个新的数组,比原有的数组长度加一
* 2、在把旧数组里面的元素复制到新元素里面
* 3、根据指定位置之后的数组元素往后移一位。
* 4、再把指定的元素插进去
* 5、再把新数组赋给旧数组
*/
//创建一个新的数组比原有的数组长度加一
int newArray[] = new int[array.length+1];
//在把旧数组里面的元素复制到新元素里面
for (int i = 0; i < array.length; i++) {
newArray[i] = array[i];
}
//System.out.println(Arrays.toString(newArray));//输出结果:[1, 2, 4, 0]
//根据指定位置之后的数组元素往后移一位
for (int i = newArray.length - 1; i > index; i--) {
newArray[i] = newArray[i - 1];
}
//System.out.println(Arrays.toString(newArray));//输出结果:[1, 2, 4, 4]
//插入指定的元素
newArray[index] = value;
//把新数组赋给旧数组
//array = newArray;
//System.out.println(Arrays.toString(array));//输出结果:[1, 2, 3, 4]
return newArray;
}
/**
* @param index 数组下标
* @param array 数组
* @return
*/
public static int[] delete(int index, int array[]) {
//数组的删除其实就是覆盖前一位
int[] arrNew = new int[array.length - 1];
for (int i = 0; i < array.length - 1; i++) {
if (i < index) {
arrNew[i] = array[i];
} else {
arrNew[i] = array[i + 1];
}
}
return arrNew;
}
}
数组在任意位置上添加或者删除数据
最新推荐文章于 2024-01-11 17:04:27 发布