java集合Arraylist的简单实现
简单说明
输出展示
源代码
public class test {
public static void main(String[] args) {
System.out.println("java集合Arraylist的简单实现");
myArr<Integer> arr = new myArr<>();
for (int i = 0; i < 12; i++) {
arr.add(i);
}
for (int i = 0; i < arr.size ; i++) {
System.out.println(arr.get(i));
}
}
}
class myArr<T extends Object> {
Object[] obArr = {};
int size = 0;
public myArr(){
}
public myArr(int length){
if (length>0){
obArr = new Object[length];
}else {
throw new ArrayIndexOutOfBoundsException();
}
}
public T get(int index) {
if(index<0||index>size-1){
throw new ArrayIndexOutOfBoundsException();
}
return (T)obArr[index];
}
public void add(T ob){
if (obArr.length==0){
obArr = new Object[10];
}else if((size+1)==(int)(obArr.length*0.8)){
System.out.println("开始扩容........");
int newLength = obArr.length + (obArr.length>>1);
Object[] newObArr = new Object[newLength];
System.arraycopy(obArr,0,newObArr,0,size);
obArr = newObArr;
System.out.println("扩容完成........");
System.out.println("新的容量为:"+obArr.length);
}
obArr[size] = ob;
size += 1;
}
}