2 回答
TA贡献1848条经验 获得超10个赞
你x % maxSize在很多地方计算,当maxSize是 时0,这会导致ArithmeticException。
初始化maxSize为正值。
请注意以下几点:
public DSAHashTable()
{
this.maxSize = maxSize;
...
}
相当于
public DSAHashTable()
{
this.maxSize = this.maxSize;
...
}
这是没有意义的。
要么接受 的初始值maxSize作为构造函数参数:
public DSAHashTable(int maxSize)
{
if (maxSize <= 0)
throw new IllegalArgumentException("Illegal max size: " + maxSize);
this.maxSize = maxSize;
...
}
或将其初始化为某个默认的正值:
static final int DEFAULT_MAX_SIZE = 10;
public DSAHashTable()
{
this.maxSize = DEFAULT_MAX_SIZE;
...
}
TA贡献1890条经验 获得超9个赞
似乎错误出在构造函数中。您正在使用 ... 本身初始化字段 maxSize。
您应该为构造函数提供一个 int 参数,以便您可以将一个非零值传递给 maxSize 字段。
添加回答
举报
