我正在尝试使用HashMap和Hashtable,将一个对象列表作为键。下面是我的代码的简化版本,但它不起作用。当我调试这段代码时,我希望在TestMap4对象中有3个项目,但实际上只有1个。
List<String> lst = new ArrayList<>();
lst.add("Hello");
lst.add("World");
Map<List<String>, Integer> testMap4 = new HashMap<List<String>, Integer>();
testMap4.put(lst, 1);
testMap4.put(lst, 2);
testMap4.put(lst, 5);
当我向HashMap对象中添加新项时,会发生什么?为什么它不起作用?使用下面的新示例,我得到了相同的结果。 (每个列表都包含相同的2个字符串)
List<String> lst = new ArrayList<>();
lst.add("Hello");
lst.add("World");
List<String> lst2 = new ArrayList<>();
lst2.add("Hello");
lst2.add("World");
List<String> lst3 = new ArrayList<>();
lst3.add("Hello");
lst3.add("World");
Map<List<String>, Integer> testMap4 = new HashMap<List<String>, Integer>();
testMap4.put(lst,1);
testMap4.put(lst2,2);
testMap4.put(lst3,5);
如果我只修改了两个字符串中的一个字符,那就没问题了。