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;
}
ほとんどの場合、コンストラクターに配置できます。