Вы вычисляете 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;
...
}