ArrayList 为什么不自动增加存储空间
我的程序如下
using System;
using System.Collections;
class usingarraylist
{
static void Main()
{
usingarraylist myusingarraylist = new usingarraylist();
ArrayList myarraylist = new ArrayList();
for (int i = 0; i < 10; i ++)
{
myarraylist.Add(new ObjectElement(i));
}
myusingarraylist.writelist(myarraylist);
Console.WriteLine();
myarraylist.Insert(8,new ObjectElement(17));
myarraylist.Insert(12,new ObjectElement(20));
myusingarraylist.writelist( myarraylist );
Console.WriteLine();
myarraylist.Remove(myarraylist[2]);
myarraylist.RemoveAt(9);
myusingarraylist.writelist(myarraylist);
Console.WriteLine();
myarraylist.Sort();
myusingarraylist.writelist(myarraylist);
Console.WriteLine();
ArrayList myarraylist1 = (ArrayList)myarraylist.Clone();
myusingarraylist.writelist(myarraylist1);
Console.ReadLine();
}
void writelist(ArrayList myarraylist)
{
int psize = myarraylist.Count;
Console.WriteLine();
for(int i = 0; i < psize; i ++)
{
ObjectElement myoe = (ObjectElement) myarraylist[i];
Console.WriteLine(myoe.GetID+",");
}
Console.WriteLine("rongliang={0},duixiangshumu = {1}",myarraylist.Capacity,psize);
}
}
class ObjectElement: IComparable
{
private int ObjectID;
public ObjectElement(int PID)
{
this.ObjectID = PID;
}
public int GetID
{
get
{
return ObjectID;
}
}
public int CompareTo(Object pObject)
{
ObjectElement myObjectElement = (ObjectElement)pObject;
return this.ObjectID.CompareTo(myObjectElement.ObjectID);
}
}
按理说他执行myarraylist.Insert(8,new ObjectElement(17));
myarraylist.Insert(12,new ObjectElement(20));
后他的容量会自动增加到32 但是他却还是16 还报插入越界
请帮小弟解决一下