动态数组的Java实现

下面介绍用Java实现动态数组及其一些简单功能的实现

 1、初始化数组

    private int size = 0;//实际大小(数组内现有元素)
    private int capacity = 8;//容量
    private int[] array = new int[capacity];//数组

2、数组的插入 

首先我们看看要在数组 最后插入元素要怎么实现

    public void addLast(int element) {
        array[size] = element;
        size++;
    }

接着要在数组已有元素中插入呢 

    public void add(int index, int element) {
        if (index >= 0 && index < size) {//考虑边界
            //使用数组复制--System.arraycopy()
            //对应传入参数分别为(原数组,复制起始索引,目标数组,粘贴起始位置,复制长度)
            System.arraycopy(array, index, array, index + 1, size - index);
            array[size] = element;
            size++;
        }
    }

聪明的小伙伴已经发现在数组最后插入元素不过是在数组插入元素的一个特例而已,也就是插入位置index 等于数组的实际边界值size,那我们就可以进行下面的优化,把两个方法整合到一起。

    public void add(int index, int element) {
        if (index >= 0 && index < size) {//考虑边界
            //使用数组复制--System.arraycopy()
            //对应传入参数分别为(原数组,复制起始索引,目标数组,粘贴起始位置,复制长度)
            System.arraycopy(array, index, array, index + 1, size - index);
        }
        array[size] = element;
        size++;
    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值