其他分享
首页 > 其他分享> > 003.数组扩容

003.数组扩容

作者:互联网

1.代码

package com.suanfa.demo;

public class A {
    private int[] data;
    private int length = 0;
    int j = 0;

    public A() {
        data = new int[5];
    }

    //插入元素
    public void insert(int x) {
        expand();
        data[length++] = x;
    }

    //显示元素
    public void show() {
        for (int i = 0; i < length; i++) {
            System.out.print(data[i] + "****");
        }
        System.out.println();
    }

    //对元素扩容
    public void expand() {
        //todo 完成数组的扩容代码
        if (length >= data.length / 2) {
            j++;
            int[] temp = data;
            data = new int[data.length * 2];
            /**
             * 遍历时参数的选择
             * 1.data.length   会报越界
             * 2.temp.length    旧的数组不一定会装满,没必要去遍历后面的元素
             */
            for (int i = 0; i < temp.length; i++) {
                data[i] = temp[i];
            }
            System.out.println("数组第"+j+"次扩容");
        }
    }

}
package com.suanfa.demo;

public class B {
    public static void main(String[] args) {
        A a = new A();
        a.insert(0);
        a.insert(1);
        a.insert(2);
        a.show();
        a.insert(3);
        a.insert(4);
        a.insert(5);
        a.show();
        a.insert(6);
        a.insert(7);
        a.insert(8);
        a.insert(9);
        a.insert(10);
        a.insert(11);
        a.show();
    }
}

2.充满回忆的一行代码

 

标签:扩容,insert,show,int,003,length,数组,data,public
来源: https://www.cnblogs.com/LLL0617/p/16203896.html