java 对数组进行插入删除修改
首先定义一个数组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); } }
声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。