import java.util.Arrays;
//import java.util.Objects;
public class ArrayList implements List {
//private int size = 0;
private Object[] elementData = new Object[100];
public void add(Object o) {
if (o == null) {
System.out.println("传入对象不能为空!");
return;
} else {
if (size() == elementData.length) {
Object[] elementData2 = Arrays.copyOf(elementData, ((int) (elementData.length * 1.2)));
elementData2[size()] = o;
elementData = elementData2;
} else {
elementData[size()] = o;
}
}
}
public void add(int index, Object o) {
if (o == null) {
System.out.println("传入对象不能为空!");
return;
}
if ((index > size())) {
System.out.println("超出数组长度!");
return;
} else {
if (size() == elementData.length) {
Object[] elementData2 = Arrays.copyOf(elementData, ((int) (elementData.length * 1.2)));
rightShift(elementData2, index);
elementData2[index] = o;
elementData = elementData2;
return;
} else {
rightShift(elementData, index);
elementData[size()] = o;
return;
}
}
}
public Object get(int index) {
if ((index > size() - 1)) {
System.out.println("超出数组长度!");
return null;
} else {
return elementData[index];
}
}
public Object remove(int index) {
if (index > size() - 1) {
System.out.println("超出数组长度!");
return null;
}else{
Object o = elementData[index];
elementData[index]=null;
leftShift(elementData,index);
return o;
}
}
public int size() {
int n;
for (n = 0; n < elementData.length; n++) {
if (elementData[n] == null) {
break;
}
}
return n;
}
public Iterator iterator() {
return new ArrayListIterator(this);
}
public class ArrayListIterator implements Iterator{
ArrayList list = new ArrayList();
int pos = 0;
ArrayListIterator(ArrayList list){
this.list = list;
}
@Override
public boolean hasNext() {
if (pos<list.size()){
return true;
}else{
return false;
}
}
@Override
public Object next() {
pos++;
return list.get(pos);
}
}
public void rightShift(Object[] o, int index) {
for (int k = size(); k > index; k--) {
o[k] = o[k - 1];
}
}
public void leftShift(Object[] o, int index) {
for (int k = index; k < size(); k++) {
o[k] = o[k + 1];
}
}
}