hinzufügen eines Schlüssel-Wert-paar in java hashMap
Ich habe eine Karte, die Karten Kosten mit position:
Map<Vector<Double>,Double> positionCost=new HashMap<Vector<Double>,Double>();
Positionen sind Vektoren vom Typ double.
Ich bin putting Kosten für die einzelnen Positionen durch:
positionCost.put(position, newcost);
Nun habe ich einen Vektor, wo ich speichern Sie alle Kosten produziert cost.add(newcost);
für alle Positionen.
Aber es gibt ein problem - die Größe der HashMap
ist nicht gleich der Größe des Vektors der Kosten.
System.out.println("no of particles"+" "+cost.size()+positionCost.size());
Ich bin nicht in der Lage, herauszufinden, warum.
Gut die Sache ist, dass, wenn u ein Vergleich von Vektor-Format verwenden, geben Sie die Größe der vector und hashmap, u zu bekommen, dass die Größe der Vektor, die Sie hinzufügen. Also, nicht gleich sein. Vielleicht könnte es doch sein, dass beides getrennte Dinge. Siehe Handbuch der hashmap
Warum ist eine "position" ein
denn es hat verschiedene Koordinaten in 4 Dimensionen, und ich bin Sie repräsentiert als Vektor.
Warum ist eine "position" ein
Vector
? Und was ist die variable Kosten?denn es hat verschiedene Koordinaten in 4 Dimensionen, und ich bin Sie repräsentiert als Vektor.
InformationsquelleAutor cauchy | 2014-11-09
Du musst angemeldet sein, um einen Kommentar abzugeben.
Die Größe der
positionCost
Map
ist nicht die gleiche wie die Größe der KostenVector
wenn Sie sind das hinzufügen der gleichenposition
Taste mehr als einmal auf denMap
. In diesem Fall ist der Letztgenannte Wert im Zusammenhang mit dieser Taste überschreiben Sie den bisherigen Wert, der verbunden war, die Schlüssel und die Größe der Karte wird die gleiche bleiben.Sollten Sie einen Zustand vor dem hinzufügen zur Karte :
InformationsquelleAutor Eran
Dies ist, weil der Größe einer hashmap hängt von der Anzahl der Tasten.Wenn die Schlüssel gleich sind,dann zählen Sie als 1.Also in deinem Fall die hashmap zählt die Anzahl position.Daher unterscheiden sich die Werte
InformationsquelleAutor Deepak Banka
Ist es möglich, dass Sie hinzufügen eine position-zu-Kosten-mapping auf Ihrer Karte mehrere Male für die gleiche position? I. e. die gleichen Vektor-Objekt? Oder vielleicht einige position der Objekte haben den gleichen hashcode? Dies bedeutet, dass Sie ersetzen einen Eintrag in Ihre Karte an einem gewissen Punkt. Das Vektor-Objekt verhält sich anders - es hängt lediglich das Objekt. So schlage ich vor, den Druck der hashcode von dem Objekt positionieren Sie als einen Schlüssel zu Debuggen.
InformationsquelleAutor Cavallo Nero