Java - HashMap
데이터를 배열에다가 넣어서 저장하던 예전과는 달리 Key-Value 컨셉으로 발달하고 그에 따른 Map은 매우 자바에 있어서 혁신적인 정점의 데이터 묶음기법이라고 할 수 있습니다.
그 중에서 HashMap은 Key-Value 값에 null을 허용하기 때문에 유용하게 쓰입니다.
1. HashMap
선언
1234 Map map = new HashMap();//또는HashMap map = new HashMap(); cs
1 HashMap<String, Integer> map = new HashMap<String, Integer>(); cs
1 2 3 4 | Map map = new HashMap(); //또는 HashMap map = new HashMap(); | cs |
1 | HashMap<String, Integer> map = new HashMap<String, Integer>(); | cs |
이렇게 지정할 경우에는 데이터 형식이 일정하기 때문에 더 빠르게 찾을 수 있고, 보기도 명확합니다.
데이터 저장
12 map.put("ym", 1000);map.put("er", 2000); cs
1 2 | map.put("ym", 1000); map.put("er", 2000); | cs |
Key-Value 형식으로 저장하면 쉽게 저장할 수 있습니다.
데이터 불러오기
123 System.out.println("ym: " + map.get("ym")); ym : 1000 cs
1 2 3 | System.out.println("ym: " + map.get("ym")); ym : 1000 | cs |
map.get으로 쉽게 불러오실 수 있습니다.
2. HashMap + List
HashMap을 여러개 사용해서 생성한 다음 List에 추가하고 가져오는 연습을 해봅시다.
1234567891011121314 Map map;List list = new ArrayList(); // 첫번째map = new HashMap();map.put("삼겹살", 8000);map.put("김치찌개", 6000);list.add(map); // 두번째map = new HashMap();map.put("참치볶음밥", 6500);map.put("김밥", 2500);list.add(map); cs
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | Map map; List list = new ArrayList(); // 첫번째 map = new HashMap(); map.put("삼겹살", 8000); map.put("김치찌개", 6000); list.add(map); // 두번째 map = new HashMap(); map.put("참치볶음밥", 6500); map.put("김밥", 2500); list.add(map); | cs |
1 2 3 | System.out.println(list); [{삼겹살=8000, 김치찌개=6000}, {참치볶음밥=6500, 김밥=2500}] | cs |
list 출력하면 위와같이 호출됩니다.
집어넣은 데이터를 다시 사용하기 위해서 캐스팅 연산(형변환)을 사용해봅시다.
1 2 3 4 5 6 7 | HashMap getMap = new HashMap(); getMap = (HashMap)list.get(0); System.out.println("삼겹살 : " + getMap.get("삼겹살")); getMap = (HashMap)list.get(1); System.out.println("김밥 : " + getMap.get("김밥")); | cs |
캐스팅 연산 시에 각각의 HashMap형으로 변환을 하여 get할 수 있습니다.
결과
12 삼겹살 : 8000김밥 : 2500 cs
1 2 | 삼겹살 : 8000 김밥 : 2500 | cs |
HashMap의 경우에는 데이터 저장은 느리지만 데이터를 빠르게 운용할 수 있습니다.
Key-Value 값에 null 허용으로 저장할 때 데이터가 빠져있어도 문제가 되지 않습니다.
출처
http://forum.falinux.com/zbxe/?mid=lecture_tip&page=1&document_srl=570168
'JAVA > JAVA 기본' 카테고리의 다른 글
[참조] 숫자 순으로 나열된 HTML ASCII 문자 (0) | 2018.05.31 |
---|---|
인터셉터란? JSP Filter와의 비교, url-pattern (0) | 2018.05.14 |
[자료구조] 큐(Queue) (0) | 2018.04.15 |
REST의 기본 (2) | 2018.04.15 |
Bean Scope & Singleton (0) | 2018.04.12 |
댓글