-模拟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) ;
}
}
}