add的时候判断下是否达到capacity,达到抛出异常,否则size + 1,remove的时候判断是否有那个元素,没有抛出异常,有则size - 1
还有不懂的可以直接去看看ArrayList的实现,下面是简单实现了下add get remove
public class Array {
//存储数据的静态数组
private int data[];
//元素的实际个数
private int size;
//构造函数 传入二次封装数组的容量
public Array(int capacity) {
data = new int[capacity];
//元素个数初始化时默认为0
size = 0;
}
//无参构造函数 容量默认为10
public Array() {
this(10);
}
//获取数组中的实际元素个数
public int getSize(){
return size;
}
//获取数组的容量
public int getCapacity(){
return data.length;
}
//返回数组是否为空
public boolean isEmpty(){
return size == 0;
}
public boolean isMax() {
return size == data.length;
}
private boolean checkIndex(int index) {
if (index < 0) {
return false;
}
return index < size;
}
public void add(int val) {
if (isMax()) {
throw new RuntimeException("out of capacity");
}
data[size ++] = val;
}
public void remove(int index) {
if (checkIndex(index)) {
int right = size - index - 1;
if (right > 0) {
System.arraycopy(data, index + 1, data, index, right);
}
data[--size] = 0;
return;
}
throw new ArrayIndexOutOfBoundsException(index);
}
public int get(int index) {
if (checkIndex(index)) {
return data[index];
}
throw new ArrayIndexOutOfBoundsException(index);
}
}