Java 在数组中存储hashMap
我想将HashMaps存储在一个数组中。我尝试只制作一个HashMap,用特定信息填充它,并将其存储到数组的一个元素中。然后我想用不同的信息覆盖Hashmap中的信息,然后将其存储到该数组的不同元素中。我想这样做多次。做这件事最好的方法是什么 现在我有:Java 在数组中存储hashMap,java,hashmap,Java,Hashmap,我想将HashMaps存储在一个数组中。我尝试只制作一个HashMap,用特定信息填充它,并将其存储到数组的一个元素中。然后我想用不同的信息覆盖Hashmap中的信息,然后将其存储到该数组的不同元素中。我想这样做多次。做这件事最好的方法是什么 现在我有: HashMap[][] location = new HashMap[columns][rows]; HashMap <String, String> area = new HashMap <String, String>
HashMap[][] location = new HashMap[columns][rows];
HashMap <String, String> area = new HashMap <String, String> ();
public Map() {
area.put("description", "You are in the upper left\n");
location[0][0] = area;
area.put("description", "You are in the upper middle\n");
location[1][0] = area;
}
HashMap[][]位置=新的HashMap[列][行];
HashMap区域=新的HashMap();
公共地图(){
放置(“描述”,“您在左上角\n”);
位置[0][0]=面积;
area.put(“description”,“您在中上\n”);
位置[1][0]=面积;
}
问题是,现在位置[0][0]和位置[1][0]都有相同的描述。您需要创建一个不同的
地图实例,以存储在每个位置
public Map() {
Map<String, String> area = new HashMap<String, String>();
area.put("description", "You are in the upper left\n");
location[0][0] = area;
area = new HashMap<String, String>();
area.put("description", "You are in the upper middle\n");
location[1][0] = area; }
publicmap(){
映射区域=新的HashMap();
放置(“描述”,“您在左上角\n”);
位置[0][0]=面积;
area=新HashMap();
area.put(“description”,“您在中上\n”);
位置[1][0]=面积;}
位置[0][0]和位置[1][0]的指针指向同一区域
你应该这样做
location[0][0] = createArea("You are in the upper left\n");
location[1][0] = createArea("You are in the upper middle\n");
HashMap <String, String> createArea(String desc){
HashMap <String, String> area = new HashMap <String, String> ();
area.put("description", desc);
return area;
}
location[0][0]=createArea(“您在左上角\n”);
位置[1][0]=createArea(“您位于中上部\n”);
HashMap createArea(字符串描述){
HashMap区域=新的HashMap();
区域放置(“说明”,描述);
返回区;
}
成功了!谢谢我喜欢它有多简单。我知道我需要制作一个新的HashMap,但我无法想象代码是什么样子。方法是关键的。您应该对区域使用Map而不是HashMap。这是一个很好的实践,因为将来更改实现会更容易。我不确定我的领域和你的领域是否相同。我用面积来表示地图上的位置,而不是数学上的。在我的例子中使用HashMap更好吗?你把Map的字面意思和Java的Map接口混淆了。我的意思是您应该将area变量初始化为Map area=newhashmap();这将有助于你在将来,当你想转移到LinkedHashMap,Treemap或任何其他风格的地图时,我没有想到这一点。事实上,我甚至不知道还有其他人存在。谢谢。那么我建议你看看它们,找出彼此之间的恩惠。在选择数据结构之前,最好有一个理由。:)