Skip to content

Commit c85baca

Browse files
tsegismontvietj
authored andcommitted
Change JsonArray hashCode to reduce collisions
Using multiplier as in array/list hash code implementations Signed-off-by: Thomas Segismont <tsegismont@gmail.com>
1 parent d4526ea commit c85baca

File tree

1 file changed

+6
-4
lines changed

1 file changed

+6
-4
lines changed

vertx-core/src/main/java/io/vertx/core/json/JsonArray.java

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,11 +17,13 @@
1717
import io.vertx.core.shareddata.Shareable;
1818

1919
import java.time.Instant;
20-
import java.util.*;
20+
import java.util.ArrayList;
21+
import java.util.Iterator;
22+
import java.util.List;
23+
import java.util.Map;
2124
import java.util.function.Function;
2225
import java.util.stream.Stream;
2326

24-
import static io.vertx.core.json.impl.JsonUtil.compare;
2527
import static io.vertx.core.json.impl.JsonUtil.*;
2628
import static java.time.format.DateTimeFormatter.ISO_INSTANT;
2729

@@ -694,9 +696,9 @@ public boolean equals(Object o) {
694696

695697
@Override
696698
public int hashCode() {
697-
int h = 0;
699+
int h = 1;
698700
for (Object value : this) {
699-
h += JsonUtil.hashCode(value);
701+
h = 31 * h + JsonUtil.hashCode(value);
700702
}
701703
return h;
702704
}

0 commit comments

Comments
 (0)