Wie um zu überprüfen, ob eine Karte hat doppelte Schlüssel?
Ok also hier ist was ich zu tun habe:
Split der übergebenen List
in einzelne Linien, und teilen Sie Sie dann die Zeilen mit einem Trennzeichen und fügen diese Teile zu einem Map
.
Mein code:
public GrammarSolver(List<String> rules) {
if(rules == null || rules.size() == 0) {
throw new IllegalArgumentException();
}
Map<String, String> rulesMap = new HashMap<String, String>();
Iterator<String> i = rules.iterator();
while(i.hasNext()) {
String rule = i.next(); //store a line from 'rules' List
String[] parts = rule.split("::="); //split the line into non-terminal and terminal
rulesMap.put(parts[0], parts[1]); //Put the two parts into the map
}
//TODO: exception when duplicate key in map
}
Alles einwandfrei funktioniert, aber jetzt ist meine Aufgabe sagt, dass ich muss eine exception werfen, wenn der Schlüssel jede Zeile wird dupliziert (tritt mehr als einmal).
Aus, was ich verstehe, der Schlüssel kann nur einzigartig sein, so was vermisse ich hier?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Tasten sind einzigartig einmal Hinzugefügt, um die
HashMap
, aber Sie wissen, wenn die nächste ein, die Sie hinzufügen wollen, bereits durch die Abfrage der hash-map mitcontainsKey(..)
oderget(..)
Methode.key1' in my
HashMap`, und ich bin versucht, ein weiteres mit gleichen Namen, was passiert?einfach die Ausnahme hinzufügen, um die Linie
wie
Können Sie schreiben, wie unten: