わかりましたので、ここで私がしなければならないことは次のとおりです。
渡さList
れた を個々の行に分割し、区切り文字を使用してそれらの行を分割し、それらの部分を に追加しMap
ます。
私のコード:
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
}
すべてが正常に機能しますが、私の割り当てでは、行のキーが重複している (複数回発生している) 場合は例外をスローする必要があることが示されています。
私が理解していることから、キーは一意にしかできないので、ここで何が欠けていますか?