2 回答

TA貢獻(xiàn)1848條經(jīng)驗 獲得超10個贊
你x % maxSize在很多地方計算,當(dāng)maxSize是 時0,這會導(dǎo)致ArithmeticException。
初始化maxSize為正值。
請注意以下幾點:
public DSAHashTable()
{
this.maxSize = maxSize;
...
}
相當(dāng)于
public DSAHashTable()
{
this.maxSize = this.maxSize;
...
}
這是沒有意義的。
要么接受 的初始值maxSize作為構(gòu)造函數(shù)參數(shù):
public DSAHashTable(int maxSize)
{
if (maxSize <= 0)
throw new IllegalArgumentException("Illegal max size: " + maxSize);
this.maxSize = maxSize;
...
}
或?qū)⑵涑跏蓟癁槟硞€默認(rèn)的正值:
static final int DEFAULT_MAX_SIZE = 10;
public DSAHashTable()
{
this.maxSize = DEFAULT_MAX_SIZE;
...
}

TA貢獻(xiàn)1890條經(jīng)驗 獲得超9個贊
似乎錯誤出在構(gòu)造函數(shù)中。您正在使用 ... 本身初始化字段 maxSize。
您應(yīng)該為構(gòu)造函數(shù)提供一個 int 參數(shù),以便您可以將一個非零值傳遞給 maxSize 字段。
添加回答
舉報