Initial
This commit is contained in:
67
test/StringArray.java
Normal file
67
test/StringArray.java
Normal file
@@ -0,0 +1,67 @@
|
||||
import java.lang.ArrayIndexOutOfBoundsException;
|
||||
|
||||
class StringArray
|
||||
{
|
||||
private final int BlockSize=16;
|
||||
private int mGrowBy=BlockSize;
|
||||
private int mActualItemCount=0;
|
||||
private int mVirtualItemCount=mGrowBy;
|
||||
private String mStringArray[]=new String[mGrowBy];
|
||||
|
||||
public String getAt(int arrayIndex)throws ArrayIndexOutOfBoundsException
|
||||
{
|
||||
if(arrayIndex>=size())throw new ArrayIndexOutOfBoundsException();
|
||||
return mStringArray[arrayIndex];
|
||||
}
|
||||
public void setAt(String strItem,int arrayIndex)throws ArrayIndexOutOfBoundsException
|
||||
{
|
||||
if(arrayIndex>=size())throw new ArrayIndexOutOfBoundsException();
|
||||
mStringArray[arrayIndex]=strItem;
|
||||
}
|
||||
public boolean insert(String strItem)
|
||||
{
|
||||
guarantee(size()+1);
|
||||
mStringArray[size()]=strItem;
|
||||
size(size()+1);
|
||||
return true;
|
||||
}
|
||||
public void guarantee(int requiredSize)
|
||||
{
|
||||
if(virtualSize()>=requiredSize)return;
|
||||
String tmpArray[]=new String[virtualSize()+growBy()];
|
||||
for(int index=0;index<virtualSize();index++)tmpArray[index]=mStringArray[index];
|
||||
mStringArray=new String[virtualSize()+growBy()];
|
||||
virtualSize(virtualSize()+growBy());
|
||||
for(int index=0;index<virtualSize();index++)mStringArray[index]=tmpArray[index];
|
||||
}
|
||||
public int size()
|
||||
{
|
||||
return mActualItemCount;
|
||||
}
|
||||
private void size(int actualItemCount)
|
||||
{
|
||||
mActualItemCount=actualItemCount;
|
||||
}
|
||||
private int virtualSize()
|
||||
{
|
||||
return mVirtualItemCount;
|
||||
}
|
||||
private void virtualSize(int virtualSize)
|
||||
{
|
||||
mVirtualItemCount=virtualSize;
|
||||
}
|
||||
public int growBy()
|
||||
{
|
||||
return mGrowBy;
|
||||
}
|
||||
public void growBy(int growBy)
|
||||
{
|
||||
mGrowBy=growBy;
|
||||
}
|
||||
public void clear()
|
||||
{
|
||||
mStringArray=new String[growBy()];
|
||||
size(0);
|
||||
virtualSize(growBy());
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user