8058643: (str) Re-examine hashCode implementation
Reviewed-by: martin, alanb, sherman, redestad
--- a/jdk/src/java.base/share/classes/java/lang/String.java Wed Sep 24 14:19:25 2014 +0400
+++ b/jdk/src/java.base/share/classes/java/lang/String.java Wed Sep 24 09:43:10 2014 -0700
@@ -1451,11 +1451,9 @@
*/
public int hashCode() {
int h = hash;
- if (h == 0 && value.length > 0) {
- char val[] = value;
-
- for (int i = 0; i < value.length; i++) {
- h = 31 * h + val[i];
+ if (h == 0) {
+ for (char v : value) {
+ h = 31 * h + v;
}
hash = h;
}