0

HashMaps を配列に格納したいと思います。HashMap を 1 つだけ作成し、特定の情報を入力して、配列の 1 つの要素に格納しようとしています。次に、その 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 left\n");
    location[0][0] = area;

    area.put("description", "You are in the upper middle\n");
    location[1][0] = area;
}

これに関する問題は、場所 [0] [0] と場所 [1] [0] の両方が同じ説明を持つようになったことです。

4

2 に答える 2

2

location[0][0] と location[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;
}
于 2012-10-18T18:21:31.800 に答える
0

Map各場所に格納するの異なるインスタンスを作成する必要があります。

 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; } 
于 2012-10-18T18:20:52.507 に答える