2010-11-09 5 views
5

Nur zum Experimentieren habe ich mehrere null Schlüssel in einer Hashmap Instanz hinzugefügt. Und es hat sich nicht beklagen. Was bringt es, das zu tun?Was ist der Vorteil, mehrere Null-Schlüssel in hashmap zuzulassen?

Der Code ist,

Map hmap = new HashMap(); 
hmap.put("sushil","sushil11"); 
hmap.put(null,null); 
hmap.put(null,"king"); 
hmap.put(null,"nagasaki"); 
hmap.put(null,null); 

Wie viele Schlüssel sind in der Karte dort?

Antwort

3

Es wird verwendet, um Schalter: Fall: Standardverhalten.

Beispiel:

Problem Definition: Coffee-Shop in CS Abteilung Gebäude. Sie bieten CS Student für $ 1,00 Kaffee an, IT-Studenten $ 1,25 und andere für $ 1,50.

Dann Karte sein:

Key -> Wert

IT -> 1.25

CS -> 1.00

null -> 1,50

if (Karte .ContainsKey (Abt.))

Preis = map.get (Abt.);

sonst

Preis = map.get (null);

P.S. - Ich bin nicht "Abteilung-Ist", wenn das ein Wort ist. :)

7

Eine normale Hashmap wird eindeutige Schlüssel haben, daher überschreiben Sie den Eintrag für die Null-Taste wiederholt. Sie haben nicht mehrere identische Schlüssel (dafür benötigen Sie eine MultiMap oder ähnliches)

10

Ich würde sagen, Sie haben nicht mehrere null-Tasten hinzugefügt. Sie haben den gleichen Schlüssel null einfach mehrfach überschrieben.

+0

Könnte u mir bitte erklären, was das Hinzufügen null als ein Schlüssel mir benifit würde. –

+0

Ich denke @Babban Shikaari hat ein Beispiel in seiner Antwort.Ich kann jetzt nicht alleine auftauchen, aber ich bevorzuge die Option, den Null-Schlüssel zu verwenden, anstatt ihn zu benötigen, aber ich bin nicht in der Lage, ihn zu benutzen: P – ZeissS

4

Es gibt einen API-Aufruf für diese:

size: Gibt die Anzahl der Schlüssel-Wert-Zuordnungen in dieser Karte.

hmap.size(); 

Wie bereits erwähnt, überschreiben Sie nur das Schlüssel/Wert-Paar mit einem neuen Wert.

+0

gr8 Ich wusste das nicht. Danke für die nette Antwort. –

Verwandte Themen