안드로이드 해쉬맵 질문이요!
조회수 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
- 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
댓글 입력