Диапазон хэш-кодов в случае строк - PullRequest
2 голосов
/ 28 февраля 2012

У меня есть строки, поступающие в моем коде, и я использую их хеш-код для какой-то цели, но мне было интересно, есть ли какой-нибудь диапазон этих хеш-кодов, потому что может случиться так, что число поступающих строк превысит диапазон хэш-кодов. диапазон хэш-кодов?

Ответы [ 2 ]

2 голосов
/ 28 февраля 2012

Диапазон hashCode является диапазоном int.Для любого желаемого hashCode() есть String с этим hashCode.

0 голосов
/ 28 февраля 2012

Метод hashCode для String класса в java определяется следующим образом ...

public int hashCode() {
    int h = hash;
    if (h == 0) {
        int off = offset;
        char val[] = value;
        int len = count;

            for (int i = 0; i < len; i++) {
                h = 31*h + val[off++];
            }
            hash = h;
        }
        return h;
    }

Он всегда будет иметь какое-то значение для вашей строки ..... Итак, я не знаю;Не думаю, что у вас когда-нибудь кончатся хэш-коды ...

...