-模拟ArrayBox
public class ArrayBox<E> {
private static final int DEFAULT_CAPACITY=10;
private Object[]elements;
public ArrayBox(){
elements =new Object[DEFAULT_CAPACITY];
}
public ArrayBox(int capacity){
elements=new Object[capacity];
}
private int size=0;
private Object[]copyOf(int newCapacity){
Object[]newElements=new Object[newCapacity];
for(int i=0;i<elements.length;i++){
newElements[i]=elements[i];
}
return newElements;
}
private void ensureCapacity(int minCapacity){
int newCapacity=elements.length;
if( elements.length<minCapacity){
newCapacity=minCapacity;
}
elements=this.copyOf(newCapacity);
}
public boolean add(E element){
this.ensureCapacity(size+1);
elements[size++]=element;
return true;
}
private void check(int index){
if(index<0||index>=size){
System.out.println("输入的数据所在范围错误");
}
}
public E find(int index){
this.check(index);
return (E)elements[index];
}
public E delete(int index){
this.check(index);
E oldValue=(E)elements[index];
for(int i=index;i<size-1;i++){
elements[i]=elements[i+1];
elements[--size]=null;
}
return (E)oldValue;
}
public int size(){
return this.size;
}
}
public class Test {
public static void main(String[] args){
ArrayBox<String> box=new ArrayBox<String>(6);
for (int i=0;i<=5;i++){
box.add("#####");
}
String oldValue=box.delete(5);
System.out.println("删除的元素为:"+oldValue);
for(int i=0;i<box.size();i++){
String value=box.find(i);
System.out.println(value);
}
}
}