我有一个问题,创建了一个HashMap,并使用StringBuilder作为键插入了两个值。
现在,当尝试使用StringBuilder对象检索数据时,它可以正常工作,但在其他情况下,它无法返回任何值。在下面的代码中,我列出了三种情况:
`
class MainClass {
public static void main(String[] args) {
MainClass m = new MainClass();
StringBuilder sb = new StringBuilder("sb");
StringBuilder sb1 = new StringBuilder("sb");
Map<StringBuilder, String> map = new HashMap<StringBuilder, String>();
map.put(sb, "a");
map.put(sb1, "b");
System.out.println("----Inside Main method---- mapValue"+map);
System.out.println("Expected value a, coming also => " + map.get(sb)); //a
System.out.println("Expected value b, coming also => " + map.get(sb1)); //b
System.out.println("Expected value a, not coming => " + map.get("sb")); // why null ?
m.receiveMap(map, sb, sb1);
}
public void receiveMap(Map<StringBuilder, String> map, StringBuilder refSb,StringBuilder refSb1) {
StringBuilder sb = new StringBuilder("sb");
StringBuilder sb1 = new StringBuilder("sb");
System.out.println("----Inside receiveMap method mapValue"+map);
System.out.println("Expected value a, not coming => " + map.get(sb)); // why null ?
System.out.println("Expected value b, not coming => " + map.get(sb1)); // why null ?
System.out.println("Expected value a, coming also => " + map.get(refSb)); // o/p - a
System.out.println("Expected value b, coming also => " + map.get(refSb1)); // o/p -b
}
} `