ist der int-Wert des Strings.hashCode() einzigartig?

Stieß ich auf ein problem Tagen gemeldet.Jetzt habe ich zig-Millionen von Worten,die Art von string. jetzt habe ich entscheiden, zu halten Sie in der Datenbank und verwenden Sie einen index, um Sie zu halten einzigartig.Und ich will nicht zu vergleichen, die ursprünglichen Worte zu halten, die Sie einzigartig. Ich würde gerne sicherstellen, ob der hashCode () - Methode der string eindeutig sein kann , wird es nicht geändert werden, wenn ein benutzen Sie einen anderen laptop oder andere Zeit oder sowas?

  • Nein, es ist deterministisch.
  • Wie viele unterschiedliche Werte können hashCode zurückgeben? Wie viele verschiedene strings gibt es? GO!!! FIT-IN!
  • Trotzdem, tldr; ist dies nicht geeignet, die Benutzung von hashCode. Während ein hash wie SHA-x nicht diese "Probleme" (oder besser: wir können behaupten, dass Kollisionen sind zu unwahrscheinlich, um zu kümmern), wenn nur der Vergleich von einzelnen Wörtern dann die hashes (20 bytes bei SHA-1) ist größer als die ursprüngliche Eingabe! Kein Sieg!
  • Vorausgesetzt, RDBMS, fügen Sie AUTO-INCREMENT Feld auf Ihren Tisch, und es wird gefüllt werden mit eindeutigen Nummern bei INSERT.
  • String ist hashCode ist definiert durch das String-API-Spezifikation so dass es erforderlich ist, werden die gleichen für gleiche strings Implementierungen.
  • Danke, das wissen aktualisiert.
  • Yup, ich Stimme mit Ihnen

InformationsquelleAutor congsg2014 | 2014-09-09
Schreibe einen Kommentar