将哈希图存储在阵列中



我想将哈希图存储在数组中。我正在尝试仅制作一个hashmap,填写特定信息,然后将其存储到数组的一个元素中。然后,我想用不同的信息覆盖该哈希图中的信息,然后将其存储到该数组的另一个元素中。我想多次这样做。这样做的最好方法是什么?

现在我有:

HashMap[][] location = new HashMap[columns][rows];
HashMap <String, String> area = new HashMap <String, String> ();
public Map() {
    area.put("description", "You are in the upper leftn");
    location[0][0] = area;
    area.put("description", "You are in the upper middlen");
    location[1][0] = area;
}

问题是现在位置[0] [0]和位置[1] [0]具有相同的描述。

位置[0] [0]和位置[1] [0]持有相同的指针

您应该这样做

location[0][0] = createArea("You are in the upper leftn");
location[1][0] = createArea("You are in the upper middlen");

HashMap <String, String> createArea(String desc){
    HashMap <String, String> area = new HashMap <String, String> ();
    area.put("description", desc);
    return area;
}

您需要创建一个在每个位置存储的Map的实例。

 public Map() {      
   Map<String, String> area = new HashMap<String, String>();
   area.put("description", "You are in the upper leftn");     
   location[0][0] = area;      
   area = new HashMap<String, String>();
   area.put("description", "You are in the upper middlen");    
   location[1][0] = area; } 

最新更新