ich nicht, warum bin ich erhalte die Ausgabe als „dreimal null und zweimal ein“ bekommen.
zu verstehen, die Gründe hinter dem Verhalten Sie die Java-Spezifikation auf der Put-Methode lesen müssen.
put(K key, V value)
gibt den vorherigen Wert mit der Taste zugeordnet ist, oder null, wenn keine Zuordnung für Schlüssel war.
, was Sie wollen, ist dies:
int arr[] = {10,3,34,3,10};
HashMap<Integer,Integer> hmap = new HashMap<Integer,Integer>();
for (int i = 0; i < arr.length; i++) {
hmap.put(arr[i],1);
}
hmap.forEach((k, v) -> System.out.println("key = " + k + " value = " + v));
Ausgang:
key = 34 value = 1
key = 3 value = 1
key = 10 value = 1
wenn Sie sich fragen, warum nicht alle Schlüssel innerhalb des arr
Array gedruckt werden, dahinter ist der Grund, einfach weil:
put(K key, V value) asso Gibt den angegebenen Wert mit dem in dieser Map angegebenen Schlüssel an. Wenn die Karte zuvor eine Zuordnung für den Schlüssel enthielt, wird der alte Wert ersetzt.
Um es einfach auszudrücken, HashMap Schlüssel eindeutig ist, wenn überhaupt doppelten Schlüssel hinzugefügt werden soll, dann wird es überschrieben.
Warum gibt es anfangs eine Ausgabe als null – Swati
Weil die 'put()' Funktion ist [definiert, um den alten Wert mit dem Schlüssel verbunden] (https://docs.oracle.com/javase/8/docs/ api/java/util/HashMap.html # put-KV-). –
@Andy Thomas, wäre es toll, wenn Sie mehr erklären .. – Swati