package com.coding.basic;
import com.sun.media.sound.EmergencySoundbank;
public class ArrayList implements List {
/**
* 列表中元素的个数
*/
private int size = 0;
/**
* 初始化数组大小
*/
private int arraySize = 100;
/**
* 初始化数组
*/
private Object[] elementData = new Object[arraySize];
/**
* 添加方法
*/
public void add(Object o){
if(size>=(arraySize*0.75)){
Object [] target = new Object[(int) (arraySize*1.5)];
System.arraycopy(elementData,0,target,0,arraySize);
target[size-1] = o;
size++;
}else if(size<(arraySize*0.75)){
elementData[size-1]=o;
size++;
}
}
/**
* 根据索引添加方法
*/
public void add(int index, Object o){
if(size >= arraySize*0.75){
Object [] target = new Object[(int) (arraySize*1.5)];
System.arraycopy(elementData,0,target,0,arraySize);
for (int j = target.length;j>=index;j--){
target[j-1] = target[j-2];
}
target[index] = o;
size++;
}else if(size < arraySize*0.75){
for (int j = elementData.length;j>=index;j--){
elementData[j-1] = elementData[j-2];
}
elementData[index] = o;
size++;
}
}
/**
* 根据索引获取对象
*/
public Object get(int index){
return elementData[index];
}
/**
* 根据索引移除对象
*/
public Object remove(int index){
for (int i = index; i < elementData.length; i++) {
elementData[i]=elementData[i+1];
size++;
}
return elementData[index];
}
/**
* 获取数组大小
*/
public int size(){
return this.size;
}
}