public class SuperArray {
private int[] array = new int[10];
private int index = 0;//1、记录新元素应该放置的位置;2、也记录了总共放了多少个有效元素
public void add(int value) {
if(this.index == this.array.length) {
int[] newArray = new int[this.array.length + 10];
System.arraycopy(this.array, 0, newArray, 0, this.array.length);
this.array = newArray;
}
this.array[this.index] = value;
this.index++;
}
//根据下标进行删除
public void remove(int index) {
if(index >= 0 && index <= this.size()) {
System.arraycopy(this.array, index + 1,
this.array, index, this.array.length - 1 - index);
this.index--;
if(this.array.length - this.index > 10 && this.array.length > 10) {
int[] newArray = new int[this.array.length - 10];
System.arraycopy(this.array, 0, newArray, 0, newArray.length);
this.array = newArray;
}
}else {
throw new ArrayIndexOutOfBoundsException();
}
}
//根据下标获取元素的值
public int get(int index) {
if(index >= 0 && index <= this.size()) {
return this.array[index];
}else {
throw new ArrayIndexOutOfBoundsException();
}
}
//根据下标修改元素的值
public void update(int index, int value) {
if(index >= 0 && index <= this.size()) {
this.array[index] = value;
}else {
throw new ArrayIndexOutOfBoundsException();
}
}
//该方法返回存放了多少个元素
public int size() {
return this.index;
}
// //该方法返回能够容纳多少个
public int capibility() {
return this.array.length;
}
}