我正在编写一个程序,它创建一个包含 100 个随机(长)元素的数组:
主要的
byte maxSize = 100;
HighArray arr = new HighArray(maxSize);
for (byte j =0; j < maxSize; j++)
arr.insert((long)(Math.random()*99));
当我调用 HighArray 类中的 removeMax() 方法时
public long getMax()
{
long max = -1;
for (byte i =0; i < nElems; i++)
{
if(max < a[i])
max = a[i];
}
return max;
}
public long removeMax()
{
long max = getMax();
delete(max);
return max;
}
public boolean delete(long value)
{
int j;
for(j=0; j<nElems; j++) // look for it
if( value == a[j] )
break;
if(j==nElems) // can't find it
return false;
else // found it
{
for(int k=j; k<nElems; k++) // move higher ones down
a[k] = a[k+1];
nElems--; // decrement size
return true;
}
我让数组越界:100 异常。我假设这意味着我的数组超出了 100 个元素的范围,这对我来说没有意义,因为我要从中删除元素,而不是添加任何元素。最初创建数组时,我没有收到任何错误。
根据我的 IDE(Intellij IDEA),当我从 main 调用 removeMax() 时会出现问题。
如果我误解了错误,请告诉我并为我澄清。如果需要更多详细信息或代码,请告诉我。