This commit is contained in:
2024-08-07 09:16:27 -04:00
parent fdfadd5c7e
commit 5f971cf684
5200 changed files with 731717 additions and 0 deletions

67
test/StringArray.java Normal file
View 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());
}
}