下面介绍用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++;
}