2012-10-18 5 views
0

배열에 HashMaps를 저장하고 싶습니다. 하나의 HashMap을 만들고 특정 정보로 채우고 배열의 한 요소에 저장하려고합니다. 그런 다음 해당 해시 맵의 정보를 다른 정보로 덮어 쓰고 그 배열의 다른 요소에 저장하고 싶습니다. 나는 이것을 여러 번하고 싶다. 이 일을하는 가장 좋은 방법은 무엇입니까?배열에 hashMap을 저장하십시오.

지금 I가 가지고

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]와 동일한 설명이있다.

+0

처럼해야 할 영역에 동일한 포인터를 HashMap의. 앞으로 구현을 변경하는 것이 더 쉬울 것이라는 점에서 좋은 습관입니다. – Arham

+0

내 지역과 지역이 같은지 잘 모르겠습니다. 저는 수학적으로가 아니라지도상의 위치에 관해서 지역을 사용하고 있습니다. 내 경우에 HashMap을 더 잘 사용하고 있습니까? – tazboy

+0

Map의 문자 그대로의 의미를 Java의 Map 인터페이스와 혼동하고 있습니다. 나는 당신이 지역 변수를 초기화해야한다는 것을 의미했다. Map area = new HashMap (); 이것은 LinkedHashMap, Treemap 또는 Map의 다른 취향을 말하게하려고 할 때 미래에 도움이 될 것입니다. – Arham

답변

2

위치 [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; 
} 
+0

그랬어! 감사. 나는 그것이 얼마나 간단한지를 좋아한다. 나는 새로운 HashMap을 만들 필요가 있음을 알았지 만 코드가 어떻게 생겼는지 상상할 수 없었다. 방법은 열쇠입니다. – tazboy

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; } 
관련 문제