首先创建一个数组,定义一个变量来控制数组元素的有限个数,
在使用过程中,数组元素超过开辟的数组个数时,要开辟新的数组空间。开辟空间的长度大小是原来长度的1.5倍。
private int[] element;//定义一个element数组 private int size;//控制数组当中有效数字的个数 //创建一个MyArrayList的数组 public MyArrayList() { element = new int[10];//给数组开辟了10个整形空间 size = 0; }
-
对原有的数组进行扩容;
public void ensureCapacity() {
if (size == element.length) {
int newLength = element.length + (element.length >> 1);
element = Arrays.copyOf(element, newLength);
}
}
-
对数组头部插入一个数据;
public void addHead(int value) {
ensureCapacity();
for (int i = size-1; i>=0;i-- ) {
element[i+1]=element[i];
}
element[0] = value;
size++;
}
-
数组尾部插入一个数据
public void addTail(int value) {
ensureCapacity();
element[size]=value;
size++;
}
-
删除数组当中的某一个元素
public void remove(int value){
for (int i = 0; i <=size ; ) {
if (value==element[i]){
element[i]=element[i+1];
for (int j = i; j <size ; j++) {
element[j]=element[j+1];
}
size--;
}
i++;
}
//删除元素后有效位数减一
}
-
对数组当中的某一个元素进行修改
public void change(int srcValue,int aimValue){//将scrValue换成aimValue
if (size==0){//非空判断
return;
}
for (int i = 0; i <size; i++) {
if (element[i]==srcValue){//找到了
element[i]=aimValue;
}
}
}
-
对数组当中的某一个元素进行查询
public boolean search(int value) {
for (int i = 0; i < size; i++) {
if (element[i] == value) {
System.out.println("有该元素值" );
return true;
}
}
System.out.println("无该元素");
return false;
}
-
展示数组当中的所有元素
public void show(){
for (int i = 0; i < size; i++) {
System.out.print(element[i]+" ");
}
}