作者:a7431555 | 来源:互联网 | 2022-12-10 10:37
这是我尝试过的:
HashMap> hmap = new HashMap>();
List valueList = new ArrayList();
valueList.add(9);
valueList.add(8);
valueList.add(7);
valueList.add(6);
hmap.put("A", valueList);
valueList.add(5);
valueList.add(4);
valueList.add(3);
valueList.add(2);
hmap.put("B", valueList);
valueList.add(7);
valueList.add(6);
valueList.add(5);
valueList.add(4);
hmap.put("C", valueList);
valueList.add(2);
valueList.add(3);
valueList.add(4);
valueList.add(5);
hmap.put("D", valueList);
当我尝试hmap
通过执行以下操作来检索特定键的值时:
List dimensiOns= hmap.get("A")
我期待哈希映射返回,[9,8,7,6]
但它返回ArrayList中的所有内容,即[9,8,7,6,5,4,3,2,7,6,5,4,2,3,4,5]
.如何使数组列表仅将第一个值推送到该键中HashMap
?我错过了什么?
我也试过valueList.clear()
每个之后hmap.put() statement
.这导致只推送最后一组值,即,[2,3,4,5]
对于所有键 HashMap
.
1> Nikolas..:
之所以发生这种情况,是因为您valueList
一次又一次地使用相同的内容,不断更新值.
为每个地图条目添加一个新的分隔列表.
// ...
valueList.add(6);
hmap.put("A", valueList);
valueList = new ArrayList();
valueList.add(5);
// ...
valueList.add(2);
hmap.put("B", valueList);
valueList = new ArrayList();
valueList.add(7);
// ... etc