publicclassArray<E>{private E[] data;privateint size;publicArray(int capacity){
data =(E[])newObject[capacity];
size =0;}publicArray(){this(10);}publicintgetSize(){return size;}publicintgetCapacity(){return data.length;}//返回数组是否为空publicbooleanisEmpty(){return size ==0;}//在所有元素后添加一个新元素publicvoidaddLast(E e){add(size, e);}//在所有元素前添加一个新元素publicvoidaddFirst(E e){add(0, e);}//在第index个位置插入一个新元素epublicvoidadd(int index, E e){if(size == data.length){thrownewIllegalArgumentException("AddLast failed. Array is full.");}if(index <0|| index > size){thrownewIllegalArgumentException("AddLast failed. Require>=0 and index<=size.");}for(int i = size -1; i >= index; i--){
data[i +1]= data[i];}
data[index]= e;
size++;}//获取index索引位置的元素public E get(int index){if(index <0|| index >= size){thrownewIllegalArgumentException("Get failed. Index is illegal.");}return data[index];}//修改index索引位置的元素为epublicvoidset(int index, E e){if(index <0|| index >= size){thrownewIllegalArgumentException("Get failed. Index is illegal.");}
data[index]= e;}//查找数组中是否有元素epublicbooleancontains(E e){for(int i =0; i < size; i++){if(data[i].equals(e)){returntrue;}}returnfalse;}//查找数组中元素e所在的索引,如果不存在元素e,则返回-1publicintfind(E e){for(int i =0; i < size; i++){if(data[i].equals(e)){return i;}}return-1;}//从数组中删除index位置的元素,返回删除的元素public E remove(int index){if(index <0|| index >= size){thrownewIllegalArgumentException("Get failed. Index is illegal.");}
E ret = data[index];for(int i = index +1; i < size; i++){
data[i -1]= data[i];}
size--;
data[size]=null;return ret;}//从数组中删除第一个元素,返回删除的元素public E removeFirst(){returnremove(0);}//从数组中删除最后一个元素,返回删除的元素public E removeLast(){returnremove(size -1);}//从数组中删除元素epublicvoidremoveElement(E e){int index =find(e);if(index !=-1){remove(index);}}@Overridepublic String toString(){
StringBuilder res =newStringBuilder();
res.append(String.format("Array:size=%d,capacity=%d\n", size, data.length));
res.append("[");for(int i =0; i < size; i++){
res.append(data[i]);if(i != size -1){
res.append(", ");}}
res.append("]");return res.toString();}}
1、Array类public class Array<E> { private E[] data; private int size; public Array(int capacity) { data = (E[]) new Object[capacity]; size = 0; } public Arra...