안드로이드 해쉬맵 질문이요!

조회수 1793회
HashMap<String,ArrayList> mapList = HashMap<String,ArrayList>();
ArrayList f_time = new ArrayList();
ArrayList f_lat = new ArrayList();
ArrayList f_log = new ArrayList();

f_time ={1,2,3,4}
f_lat - {1.1, 1.2, 1.3, 1.4}
f_log - {2.1, 2.2, 2.3, 2.4}
key = {1,2};

이런식으로 저장돼있다고 가정하고

mapList라는 해쉬맵에

key=1;
mapList.put(key,f_time);
mapList.put(key,f_lat);
mapList.put(key,f_log);

이렇게 저장하고 key값별로 f_time,f_lat,f_log를 뽑을수있을까요?? 예를들어 key값 1에 f_time 3번째값을 뽑을수있을까요??

  • (•́ ✖ •̀)
    알 수 없는 사용자

1 답변

  • key의 경우 예시가 이해가 안되서 적절하게 바꿔봤습니다.

    맵의 경우 키값의 중복을 허용하지 않기때문에 위의 코드는 mapList.put(key,f_log) 의 데이터만 저장됩니다.

    key 값으로 value 값인 ArrayList 를 가져온 후 ArrayList 의 인덱스에 접근하면 됩니다. keySet 이외에도 entrySet, iterator 를 활용하여 맵데이터를 가져올 수 있습니다.

    HashMap<String, ArrayList> mapList = new HashMap<String, ArrayList>();
    
    ArrayList f_time = new ArrayList(Arrays.asList(1, 2, 3, 4));
    ArrayList f_lat = new ArrayList(Arrays.asList(1.1, 1.2, 1.3, 1.4));
    ArrayList f_log = new ArrayList(Arrays.asList(2.1, 2.2, 2.3, 2.4));
    
    mapList.put("1", f_time);
    mapList.put("2", f_lat);
    mapList.put("3", f_log);
    
    for (String key : mapList.keySet()) {
        System.out.println("key ::: " + key);
        ArrayList list = mapList.get(key);
        System.out.println("value ::: " + list.get(2));
        System.out.println("values ::: " + list.toString());
    }
    

    ++ 추가내용입니다.

    http://tryhelloworld.co.kr/courses/자바-중급/lessons/컬렉션-프레임워크

    http://tryhelloworld.co.kr/courses/자바-중급/lessons/set

    http://tryhelloworld.co.kr/courses/자바-중급/lessons/list

    http://tryhelloworld.co.kr/courses/자바-중급/lessons/map

    • ArrayList list = mapList.get(key); 여기서 java.lang.ClassCastException: java.lang.String cannot be cast to java.util.ArrayList 에러가 떠요... list.add(mapList.get(key));랑 같은건가요??? 알 수 없는 사용자 2016.12.6 12:49
    • mapList.get(key); 는 key값으로 value 를 가져오는 겁니다. mapList.get(1) 은 f_time 리스트를 가져오는 거랑 같습니다. list.add 는 list에 데이터를 추가하는 것이구요. 답변에 컬렉션프레임워크 관련된 영상 추가했으니 한번 봐보세요~ 김선우 2016.12.6 13:15
    • 답변 정말감사드립니다. 동영상 잘봤습니다! 그런데.... ArrayList list = mapList.get(key); 여기서 mapList.get(key)가 ArrayList형식이지않나요?? 왜 java.lang.ClassCastException: java.lang.String cannot be cast to java.util.ArrayList 이런 오류가 뜨는지 이해가 안가는데 죄송하지만 좀더 도와주실수있으신가요?... 알 수 없는 사용자 2016.12.6 13:58
    • 저는 정상적으로 출력되는데... 제가 예시로든 코드를 그대로 돌리신건가요?? 김선우 2016.12.6 18:21
    • 제가 실수를 했네요... 감사합니다 잘작동합니다!! 알 수 없는 사용자 2016.12.7 21:47

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)