Как можно сделать данный код чище?
Метод принимает параметр в виде номера метода и в зависимости от него вызывает нужную функцию вычисления хеш кода.
if(methodNum == 0) {
hashCode = getHashDivine(randomArr[j]);
} else if(methodNum == 1) {
hashCode = getHashSquare(randomArr[j]);
} else if(methodNum == 2) {
hashCode = getHashCollapse(randomArr[j]);
} else if(methodNum == 3) {
hashCode = getHashMultiply(randomArr[j]);
} else {
hashCode = getHashUniversal(randomArr[j]);
}
Ответы (1 шт):
Автор решения: Igor
→ Ссылка
interface HashOperation {
int getHash(int value);
}
@NotNull
HashOperation getHashOperation(int method) {
switch(method) {
case 0:
return value -> getHashDivine(value);
...
default:
return value -> getHashUniversal(value);
}
}
int hashCode = getHashOperation(methodNum).getHash(randomArr[j]);