ArrayList Java实现

来源:互联网 发布:淘宝网店海报分辨率 编辑:程序博客网 时间:2024/06/08 19:50
public class arrayList<E> implements Iterable<E>{private Object[]data=null;private int capacity;private int currentsize;arrayList(){this(10);}arrayList(int initialsize){if(initialsize>0){this.capacity=initialsize;this.currentsize=0;data=new Object[initialsize];}else{throw new RuntimeException("初始化大小不能为0"+initialsize);}}private void ensureCapacity(){int index;if(currentsize>=capacity){capacity=capacity*2;Object []newdata=new Object[capacity];for(index=0;index<currentsize;index++){newdata[index]=data[index];}data=newdata;}}private void validateIndex(int index){if(index<0||index>currentsize-1)throw new RuntimeException("无效的下标"+index);}public int size(){return currentsize;}public boolean set(int index,E elem){validateIndex(index);data[index-1]=elem;return true;}/** *  * @param elem * @return */public boolean addElement(E elem){ensureCapacity();data[currentsize]=elem;currentsize++;return true;}/** *  * @param index * @param elem * @return */public boolean insert(int index,E elem){validateIndex(index);currentsize++;ensureCapacity();data[index-1]=elem;for(int i=(currentsize-1);i>=index;i--){data[i]=data[i-1];}return true;}/** *  * @param index * @return element */public E getElement(int index){validateIndex(index);return (E)data[index-1];}public boolean delete(int index){validateIndex(index);for(int i=index;i<currentsize;i++)data[i-1]=data[i];data[currentsize--]=null;return true;}public java.util.Iterator<E> iterator(){return new ArrayListIterator<E>();}class ArrayListIterator<E>implements java.util.Iterator{private int current=0;public boolean hasNext(){return current<size();}public E next(){if(!hasNext())throw new java.util.NoSuchElementException();return (E) data[current++];}public void remove(){arrayList.this.delete(current+1);current--;}}}
没有进行验证
原创粉丝点击