主函数
public class MyArrayList {
//创建一个数组
int[] array ;
//计数器
int count=0;
//创建一个初始长度为10的数组
public MyArrayList() {
array=new int[10];
System.out.println("数组初始长度为"+array.length);
}
//创建一个可以自定义初始数组长度的有参构造器
public MyArrayList(int capacity) {
array=new int[capacity];
System.out.println("数组初始长度为"+array.length);
}
//添加数组元素
public void add(int i) {
if(count>=array.length) {
dilatation();
//System.out.println(array.length);
}
array[count]=i;
System.out.println("添加元素"+array[count]+",当前数组长度"+size());
count++;
}
//输出方法
public void print() {
for(int n:array) {
System.out.print(n+" ");
}
System.out.println();
}
//改变数组长度的方法
public void dilatation() {
int[] array = new int [this.array.length];
for(int i=0;i<this.array.length;i++) {
array[i] = this.array[i];
}
this.array = new int [array.length+(array.length>>1)];
for(int j=0;j<array.length;j++) {
this.array[j] = array[j];
}
}
//返回当前数组的长度
public int size() {
return array.length;
}
//返回指定位置的数组元素
public int get(int index) {
return array[index];
}
}
主方法
public static void main(String[] args) {
//定义一个初始长度为2的数组
MyArrayList m = new MyArrayList(2);
m.add(10);
m.add(2);
m.add(3);
m.add(20);
m.print();
System.out.println("当前数组下标为2的元素为"+m.get(2));
}
代码运行结果