2a 744 B

1234567891011121314151617181920212223242526272829303132
  1. public int hashCode() {
  2. int hash = 0;
  3. int skip = Math.max(1, length() / 8);
  4. for (int i = 0; i < length(); i += skip)
  5. hash = (hash * 37) + charAt(i);
  6. return hash;
  7. }
  8. public int hashCode() {
  9. int hash = 0;
  10. for (int i = 0; i < length(); i++)
  11. hash = (hash * 31) + charAt(i);
  12. return hash;
  13. }
  14. strlst@ayaya ~ echo -n abcdefghijklmnopqrstuvwx | wc -c
  15. 24
  16. strlst@ayaya ~ echo -n a11d11g11j11m11p11s11v11 | wc -c
  17. 24
  18. strlst@ayaya ~ calc 24 / 8
  19. 3.00000000000000000000
  20. kollision:
  21. 012 012 012 012 012 012 012 012
  22. abc def ghi jkl mno pqr stu vwx
  23. a11 d11 g11 j11 m11 p11 s11 v11
  24. prim zahlen haben bei beiden varianten denselben effekt
  25. I) durchläufe d: 1 <= d <= length() / 8
  26. II) durchläufe d: 1 <= d <= length()