마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

HashMap 값 누적 질문

0 추천

안녕하세요. 

아래와 같이 HashMap을 선언한 뒤에

첫번째 키값을 찾고 다시 두번째 키값을 찾은 후 ArrayList의 값을 누적 시키려고 합니다. 

그런데 put 을 하니 예상되는 결과가 나타나지 않습니다. 

예상 처럼 나타나게 할수 있는 방법이 있을까요?

안된다면 HashMap 말고 다른 방법은 없을까요?

 

예상) key1 - key2 - {0,1,2,3}

                    - key3 - {4, 5, 6}

                    - key4 - {7, 8, 9}

 

결과) key1 - key4 - {9}

 

 HashMap<String, HashMap<String, ArrayList<Double>>> AllWaveData_List = new HashMap<>();

HashMap<String,  ArrayList<Double>> temp = new HashMap<>();
ArrayList<Double> doublesTemp = new ArrayList<>();
doublesTemp.add(1111);
temp.put("key2", doublesTemp);
AllWaveData_List.put("key1",temp);

 

 

깡갱 (660 포인트) 님이 2015년 3월 18일 질문
model class 랑 arraylist만으로도 충분히 해결 될거 같은데 꼭 해쉬맵을 써야 하나요?

1개의 답변

0 추천
생각대로 하시면 될거 같은데요, 아래처럼 해보세요.
 
HashMap<String, HashMap<String, ArrayList<Double>>> AllWaveData_List = new HashMap<>();
HashMap<String,  ArrayList<Double>> temp = new HashMap<>();
 
ArrayList<Double> doublesTemp = new ArrayList<>();
doublesTemp.add(0);
doublesTemp.add(1);
doublesTemp.add(2);
doublesTemp.add(3);
 
temp.put("key2", doublesTemp);
 
doublesTemp.clear();
doublesTemp = new ArrayList<>();
doublesTemp.add(4);
doublesTemp.add(5);
doublesTemp.add(6);
 
temp.put("key3", doublesTemp);
 
doublesTemp.clear();
doublesTemp = new ArrayList<>();
doublesTemp.add(7);
doublesTemp.add(8);
doublesTemp.add(9);
 
temp.put("key4", doublesTemp);
 
AllWaveData_List.put("key1",temp);
 
for (Map.Entry<String, HashMap<String, ArrayList<Double>>> rs : AllWaveData_List.entrySet()) {
  System.out.print(rs .getKey() + " - ");
 
  for (Map.Entry<String, ArrayList<Double>> r : rs .getValue.entrySet()) {
    System.out.print(r.getKey()  + " - {");
    
    String delimeter = "";
    for (double d : r.getValue()) { 
      System.out.print(delimeter  + d);
      delimeter = ", "
    }
    System.out.println("}");
  }
}
익명사용자 님이 2015년 3월 18일 답변
...