これらのコードを見てみましょう:
HashMap<String, List<String>> testTree = new HashMap<String, List<String>>();
String k = new String("1");
String v = new String("2");
List<String> children = new ArrayList<String>();
children.add(v);
testTree.put(k, children);
if (testTree.containsKey("1")){
System.out.println("found!!");
}
else
System.out.println("No found!!");
出力 1:found!!
HashMap<String[], List<String[]>> testTree2 = new HashMap<String[], List<String[]>>();
String[] k2 = {"1","2"};
String[] v2 = {"2","3"};
List<String[]> children2 = new ArrayList<String[]>();
children2.add(v2);
testTree2.put(k2, children2);
String[] k3 = {"1","2"};
if (testTree.containsKey(k3)){
System.out.println("found!!");
}
else
System.out.println("No found!!");
出力 2:No found!!
output1 が「見つかりました」& output2 が「見つかりません」になるのはなぜですか? キーが文字列配列の場合、HashMap はそのキーを認識しないことを意味しますが、キーが文字列の場合は問題ありません。
String 配列を HashMap のキーに入れる必要があるのですが、HashMap に String 配列キーを認識させるにはどうすればよいでしょうか?