Почему Сгенерированный ленивый хэш-код Java String?

В java.lang.String.java показано, что Java будет генерировать только хэш-код, а затем сохранять его после вызова hashcode (), но почему бы просто не сделать хэш-код в конструктор?

Соответствующий код:

if (h == 0 && count > 0) {
    int off = offset;
    char val[] = value;
    int len = count;

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

    hash = h;
}

по большей части может быть помещен в конструктор.

7
задан sneeze1 17 February 2012 в 00:29
поделиться