Ich habe zwei Karten mit unterschiedlicher Größe. Zum BeispielWie kann ich zwei Karten unterschiedlicher Größe vergleichen
Map<String, Double> qm3 = new HashMap<>();
Map<String, Double> m = new HashMap<>();
QM3 hat folgende Karte {d=0.2, e=0.3}
m Die folgende Karte {e=0.3, c=0.4, d=0.5}
Nun hat, wie ich die Schlüssel dieser beiden Karten vergleichen möchten. Wenn der erste Schlüssel von "qm3" mit irgendeinem der Schlüssel von "m" übereinstimmt, dann möchte ich die Werte von qm3 in einer Liste qvec und die Werte von m in einer anderen Liste dvec speichern. und so weiter
Ich möchte jeden Schlüssel von qm3 (d, e) mit jedem Schlüssel von m (e, c, d) übereinstimmen. Zum Beispiel wird d mit e, c, d verglichen. Wenn Übereinstimmung gefunden wird, dann werde ich die Werte von d in zwei Listen setzen.
qvec speichert die im Wert von d aus QM3 und dvec speichert den Wert von d von m
Der Code, den ich bis jetzt haben.
for(Map.Entry<String, Double> qe : qm3.entrySet()){
for(Map.Entry<String, Double> de : m3.entrySet()){
System.out.println(qe.getKey());
if(qe.getKey().equals(de.getKey())){
//System.out.println(qe.getKey());
qvec.add(qe.getValue());
dvec.add(de.getValue());
}
else {
qvec.add(qe.getValue());
dvec.add(0.0);
}
}
}
Ist Ihnen bekannt, dass 'Map's eine [Lookup-Funktion] haben (https://docs.oracle.com/javase/8/docs/api/java/util/Map.html#get-java.lang. Object-), um den Wert zu erhalten, wenn es eine Zuordnung gibt, die es überflüssig macht, über die gesamte Map zu iterieren? – Holger
Warum verwendest du nicht? Dieser Code ist irgendwie undurchdringlich, was ist ein 'qvec'? – Taylor
Oh nein, ich bin nicht vertraut mit diesen Ding, wie man das benutzt oder was ist diese Nachschlagefunktion? –