Erstellen Sie einen Hash aus String und Int

Ich erinnere mich, dass Eclipse und Idea diese Vorlage haben, um den Hashcode eines Objekts basierend auf seinen Attributen automatisch zu erstellen.

Eine der Strategien, wenn eine Zahl und eine Zeichenfolge verwendet werden, ist so etwas.

  return stringValue.hashCode() + intValue * 32;

So was in der Art.

Ich habe weder eine Sonnenfinsternis noch eine Idee zur Hand und möchte eine solche Funktion erstellen.

BEARBEITEN

Basierend auf den Antworten erstelle ich diese Miniklasse

    class StringInt {
        private final String s;
        private final int i;

        static StringInt valueOf( String string , int value ) {
            return new StringInt( string, value );
        }
        private StringInt( String string, int value ) {
            this.s = string;
            this.i = value;
        }
        public boolean equals( Object o ) {
            if( o != null && o instanceof StringInt ){
                StringInt other = ( StringInt ) o;
                return this.s == other.s && this.i == other.i;
            }

            return false;
        }
        public int hashCode() {
            return s != null ? s.hashCode() * 37 + i : i;
        }
    }

Diese Klasse soll als Schlüssel für eine große Speicherkarte (> 10k Elemente) verwendet werden. Ich möchte sie nicht jedes Mal wiederholen, um festzustellen, ob der String und der int gleich sind.

Vielen Dank.

ps .. mmh wahrscheinlich sollte es Namen StringIntKey sein.

Antworten auf die Frage(6)

Ihre Antwort auf die Frage