私のコードは、char配列(char [] charArray)を反復し、そのキーを探します。キーを使用して、マップ内の値を検索します。しかし、map.get()関数は、私が値として設定したと思っても私にnullを与えています、なぜ私は確信していません。ありがとう!なぜmap.get()関数はnullですか?
parameters for this method are:
LinkedBinaryTree<String> and HashMap<String, Integer>
for (int i = 0; i < charArray.length; i++) {
if (Character.isLetter(charArray[i])) {
// Why is map.get(charArray[i]) null??
String char2String = Character.toString(charArray[i]);
if (map.get(char2String) == null) {
throw new IllegalArgumentException("int is null");
}
int k = map.get(char2String);
charArray[i] = Integer.toString(k).charAt(0);
}
}
これはメソッドをテストするためのテストケースです。
になり@Test
public void testSubstituteMap() {
LinkedBinaryTree<String> tree2 = Assignment.prefix2tree("- x + 1 + x x");
HashMap<String, Integer> Map = new HashMap<String, Integer>();
Map.put("x", 5);
tree2 = Assignment.substitute(tree2, Map);
LinkedBinaryTree<String> expected = Assignment.prefix2tree("- 5 + 1 + 5 5");
assertEquals(Assignment.tree2prefix(expected), Assignment.tree2prefix(tree2));
}
:
マップが文字列でキーされている場合、そのキーはいずれも文字ではありません。文字は文字列ではありません。 – khelwood
**文字**をマップに追加したコードを表示してください –
あなたはコードの大部分を欠場しました。メソッド全体を提供することさえできず、マップ変数はどこにも定義されていません。 – Vlasec