Wenn Sie einen Blick auf Map::put()
API nehmen, werden Sie sehen:
Würfe:
UnsupportedOperationException
- wenn der Put-Betrieb wird durch diese Karte unterstützt
ClassCastException
- wenn die Klasse des angegebenen Schlüssel oder Wert verhindert, dass es in dieser Map gespeichert wird
NullPointerException
- wenn der angegebene Schlüssel oder Wert null ist und diese Zuordnung keine Nullschlüssel oder Werte
zulässt- wenn einige Eigenschaft des angegebenen Schlüssel oder Wert verhindert, dass es in dieser Karte
und
Returns die mit Schlüssel oder null, wenn es
war assoziiert vorherigen Wert gespeichert werden Keine Zuordnung für Schlüssel. (A null Rückkehr kann auch bedeuten, dass die Karte vorher null zugeordnet Schlüssel, wenn die Umsetzung Nullwerte unterstützt.)
mit So ein try-catch
und die Rückkehr Wert können Sie den Erfolg der put
Aktion gewährleisten.
Aber, wenn Sie ganz sicher sein wollen, können Sie eine Map-Implementierung (in diesem Fall HashMap
) außer Kraft setzen und Ihre Geschäftslogik erstellen.
In diesem Fall verwenden put
und eine boolean
Rückkehr und trowing keine Exception
(oder sie in der Art und Weise der Handhabung Sie möchten).
public class MyHashMap<K, V> extends HashMap {
@Override
public Boolean put(Object key, Object value) {
try {
super.put(key, value);
} catch (UnsupportedOperationException | ClassCastException | NullPointerException | IllegalArgumentException e) {
return false; // or do what you want!
}
return true;
}
}
Und später VERWENDEN SIE ES!:
Map<Integer, Integer> myMap = new MyHashMap();
// printing result
System.out.println(myMap.put(10,20));
// set result to a variable
boolean result = myMap.put(null,null); // result = true
// or even setting and evaluating
if (myMap.put(10,20)) {
// success action
} else {
// fail action
}
HINWEIS: ist dies eine Java-Implementierung 8
Sie meinen, wie können Sie wissen, dass "Put" tatsächlich den Eintrag in Ihrer Karte "Put"? Ich würde darauf zählen. – Idos
Sie können die Size-Methode verwenden, um zu überprüfen, ob das neue Element hinzugefügt wurde, nicht sicher, wie Sie es tun könnten, ohne mehr Code zu schreiben. Sie könnten es debuggen und einen Haltepunkt haben und die HashMap im Speicher überprüfen, um den Inhalt zu sehen . – dahui
Ja, das würde ich gerne wissen. - Idos –