1.支持数组的动态扩容,模拟ArrayList
public class MyArrayList {
private int[] arr;
private int count;
public MyArrayList() {
arr = new int[3];
count = 0;
}
public void add(int data) {
if(count<arr.length) {
arr[count] = data;
count++;
}else {
int length = (int)(arr.length*1.5);
int[] arr1 = new int[length];
for(int i=0;i<arr.length;i++) {
arr1[i]=arr[i];
}
arr = arr1;
arr[count] = data;
count++;
}
System.out.println("数组count:"+count);
System.out.println("数组大小:"+arr.length);
}
public void remove(int data) {
int index = findData(data);
System.out.println("index="+index);
if(-1==index) {
System.out.println("没有这个数据!!");
return;
}
for(int i=index;i<count-1;i++) {
arr[i] = arr[i+1];
}
count--;
}
public int findData(int data) {
for(int i=0;i<count;i++) {
if(arr[i] ==data) {
return i;
}
}
return -1;
}
public void display() {
System.out.print("[");
for(int i=0;i<count;i++) {
System.out.print(arr[i]+" ");
}
System.out.print("]");
System.out.println();
}
}
2.使用
public class TestArray {
public static void main(String[] args) {
ArrayList a;
MyArrayList arr = new MyArrayList();
arr.add(1);
arr.add(2);
arr.add(3);
arr.add(4);
arr.add(5);
arr.add(6);
arr.display();
System.out.println("--------------");
arr.remove(3);
arr.display();
arr.remove(1);
arr.display();
arr.remove(7);
arr.display();
}
}