import java.util.Iterator;
public class MyArrayList<E> implements Iterable<E>{
public static int InitSize=2;
private Object[] elementData=new Object[InitSize];
private static int size;
public <E> void add(E e){
if(size>=InitSize){//如果超出集合的大小,则每次扩充1.5倍
InitSize=InitSize+(InitSize/2==0?1:InitSize/2);
Object[] elementTemp=new Object[InitSize];
System.arraycopy(elementData, 0,elementTemp , 0, size);
elementData=elementTemp;
}
elementData[size]=e;
size++;
}
public E get(int index){
if(index<0 || index>=size){
throw new ArrayIndexOutOfBoundsException("出错");
}
return (E)elementData[index];
}
public static int getSize(){
return size;
}
//实现Iterable接口
//使用Iterator进行遍历元素
//不实现的话该类就无法进行增强for循环的操作
public Iterator<E> iterator() {
return new Itr();
}
class Itr implements Iterator<E>{
int index=0;
public boolean hasNext() {
return index<size;
}
public E next() {
return get(index++);
}
public void remove() {
};
}
}
public class Test {
public static void main(String[] args) {
MyArrayList<String> list=new MyArrayList<String>();
list.add("wwww我");
list.add("a");
list.add("为");
list.add("人");
list.add("g");
list.add("盘");
list.add("才v");
System.out.println("集合元素个数:"+list.getSize());
System.out.println("集合大小:"+list.InitSize);
for(Object s:list){
System.out.println(s);
}
}
/**运行结果:
集合元素个数:7
集合大小:9
wwww我
a
为
人
g
盘
才v
*/
}
本文转自: http://blog.csdn.net/wxwzy738/article/details/7604801