「空でない」とは、この質問ではゼロ以外の文字を少なくとも 1 つ含む文字列を意味します。
参考までに、hashCode
実装は次のとおりです。
1493 public int hashCode() {
1494 int h = hash;
1495 if (h == 0) {
1496 int off = offset;
1497 char val[] = value;
1498 int len = count;
1499
1500 for (int i = 0; i < len; i++) {
1501 h = 31*h + val[off++];
1502 }
1503 hash = h;
1504 }
1505 return h;
1506 }
アルゴリズムはドキュメントで指定されています。
整数オーバーフローが発生する前の答えは簡単です。ノーです。しかし、私が知りたいのは、整数のオーバーフローが原因で、空でない文字列のハッシュコードがゼロになる可能性があるかどうかです。構築できますか?
私が探しているのは、理想的には数学的デモンストレーション (またはデモンストレーションへのリンク) または構築アルゴリズムです。