Как можно сделать данный код чище?

Метод принимает параметр в виде номера метода и в зависимости от него вызывает нужную функцию вычисления хеш кода.

  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]);
→ Ссылка