Java Reference
In-Depth Information
/
**
Array-basedlistimplementation
*
/
classAList<E>implementsList<E>{
privatestaticfinalintdefaultSize=10;//Defaultsize
privateintmaxSize; //Maximumsizeoflist
privateintlistSize; //Current#oflistitems
privateintcurr; //Positionofcurrentelement
privateE[]listArray; //Arrayholdinglistelements
/
**
Constructors
*
/
/
**
Createalistwiththedefaultcapacity.
*
/
AList(){this(defaultSize);}
/
**
Createanewlistobject.
@paramsizeMax#ofelementslistcancontain.
*
/
@SuppressWarnings("unchecked")//Genericarrayallocation
AList(intsize){
maxSize=size;
listSize=curr=0;
listArray=(E[])newObject[size];//CreatelistArray
}
publicvoidclear() //Reinitializethelist
{listSize=curr=0;}//Simplyreinitializevalues
/
**
Insert"it"atcurrentposition
*
/
publicvoidinsert(Eit){
assertlistSize<maxSize:"Listcapacityexceeded";
for(inti=listSize;i>curr;i--)//Shiftelementsup
listArray[i]=listArray[i-1];// tomakeroom
listArray[curr]=it;
listSize++; //Incrementlistsize
}
/
**
Append"it"tolist
*
/
publicvoidappend(Eit){
assertlistSize<maxSize:"Listcapacityexceeded";
listArray[listSize++]=it;
}
/
**
Removeandreturnthecurrentelement
*
/
publicEremove(){
if((curr<0)||(curr>=listSize))//Nocurrentelement
returnnull;
Eit=listArray[curr]; //Copytheelement
for(inti=curr;i<listSize-1;i++)//Shiftthemdown
listArray[i]=listArray[i+1];
listSize--; //Decrementsize
returnit;
}
Figure4.2
An array-based list implementation.