数组的插入操作 :
首先定义一个数组a: 【1】【2】【3】【4】【5】 。我想要在a数组的第3个位置插入6, 那么第3个位置和它之后的的每个位置都应该向后移动一位。
此时数组由原来的数组a:
【1】【2】【3】【4】【5】
变成 b:
【1】【2】【6】【3】【4】【5】
而我们知道array 数组在定义了之后长度就不能改变了, 所以我们要重新新定义一个比原来的数组长度+1的数组 也就是 int[] b = new int[a.length+1]。
插入6的时候,b数组的第一个元素为原先数组的第一个, 第二个为原先的第二个 ,当到第三个时,b数组的第三个要插入的值是6,然后第三个之后的 ,都为对应a数组+1的位置, 也就是b[i]=a[i+1]。
删除操作
采用插入操作的分析方法可得。
修改操作
就是直接替换数组位置里的一个值。
代码:
package stack;
public class ArrayOperation {
public static int[] insert(int a[], int index, int value) {
int b[] = new int[a.length + 1];
for (int i = 0; i < b.length; i++) {
if (i < index - 1) {
b[i] = a[i];
}
if (i == index - 1) {
b[i] = value;
}
if (i > index - 1) {
b[i] = a[i - 1];
}
}
return b;
}
public static void printArray(int a[]) {
for (int i = 0; i < a.length; i++) {
System.out.print(a[i] + " ");
}
System.out.println();
}
public static int[] delete(int a[], int index) {
int b[] = new int[a.length - 1];
for (int i = 0; i < b.length; i++) {
if (i < index - 1) {
b[i] = a[i];
} else {
b[i] = a[i + 1];
}
}
return b;
}
public static int[] update(int a[], int index, int value) {
a[index - 1] = value;
return a;
}
public static void main(String args[]) {
int[] a = { 1, 2, 3, 4, 5, 6 };
int[] b = insert(a, 3, 7); // 在数组a的第三个位置插入7
printArray(b);
b = delete(a, 2); // 删除a数组的第2个元素
printArray(b);
b = update(a, 4, 9); // a数组的第4个元素更新为9
printArray(b);
}
}