牛骨文教育服务平台(让学习变的简单)
博文笔记

java 对数组进行插入删除修改

创建时间:2013-08-30 投稿人: 浏览次数:11192

首先定义一个数组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);

    }
}

声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。