티스토리 뷰
[주제]
- 해시맵(HashMap)의 사용 방식
[중요]
- 'TreeMap'을 사용하여 출력하면 자동으로 정렬이 됨
※ 오름차순 정렬. '1, 2, 3, ...', '가, 나, 다, ...', 'A, B, C, ...'
[소스]
■ Dto.java
package hasMapTest; public class Dto { int num; String name; public Dto(int num, String name) { this.num = num; this.name = name; } public void output() { System.out.println("num: " + num + ", name: " + name); } } | cs |
■ mainClass.java
package hasMapTest; import java.util.HashMap; import java.util.Iterator; import java.util.TreeMap; public class mainClass { public static void main(String[] args) { /* * [Hash Map] * 사전 * * 검색 순위: Hash Map > ArrayList > LinkedList * 추가/삭제: Hash Map > LinkedList > ArrayList * * 제너릭 자료형 (key, value) 2개를 사용 * - key 값을 기준으로 검색 * - key 값은 도중에 변경할 수 없음 * - value 값만 변경됨 */ ///// 첫 번째 HashMap HashMap<Integer, String> myMap; myMap = new HashMap<Integer, String>(); // 추가 myMap.put(22, "BB"); myMap.put(44, "DD"); myMap.put(66, "FF"); // 수정 ※ 추가와 동일 myMap.put(22, "CC"); // key 값이 같으면 덮어쓰기 됨 // 검색 String str = myMap.get(22); System.out.println("str = " + str); ///// 두 번째 HashMap HashMap<String, String> myMap1 = new HashMap<String, String>(); myMap1.put("사광", "apple"); myMap1.put("포동", "grape"); myMap1.put("뱅", "pear"); String str1 = myMap1.get("포동"); System.out.println("str1 = " + str1); // key 값을 확인 if (myMap1.containsKey("사광")) { System.out.println("키 값이 존재합니다."); } else { System.out.println("키 값이 존재하지 않습니다."); } // 삭제 myMap1.remove("뱅"); // 출력 // 자료형은 HashMap의 key 값과 동일 Iterator<String> it1 = myMap1.keySet().iterator(); while(it1.hasNext()) { String key = it1.next(); System.out.println("key: " + key + ", value: " + myMap1.get(key)); } System.out.println(); myMap1.put("바나낭", "Banana"); it1 = myMap1.keySet().iterator(); while(it1.hasNext()) { String key = it1.next(); System.out.println("key: " + key + ", value: " + myMap1.get(key)); } System.out.println(); // 세 번째 HashMap HashMap<String, Dto> myMapData = new HashMap<String, Dto>(); // 추가 myMapData.put("나", new Dto(100, "김얗마")); myMapData.put("가", new Dto(222, "따부")); myMapData.put("다", new Dto(300, "치요치요")); if (myMapData.containsKey("16-0002")) { Dto dto = myMapData.get("16-0002"); dto.output(); } // 수정 myMapData.put("가", new Dto(200, "따거")); myMapData.put("바", new Dto(400, "야삐")); myMapData.put("마", new Dto(500, "맥스")); myMapData.put("사", new Dto(600, "토토")); // 삭제 myMapData.remove("다"); // 출력 Iterator<String> it2 = myMapData.keySet().iterator(); while (it2.hasNext()) { String key = it2.next(); Dto dto = myMapData.get(key); System.out.print("key: " + key + ", value: "); dto.output(); } System.out.println(); // 정렬 ※ TreeMap 활용 // 정렬할 HashMap과 동일한 자료형을 사용해야 함 TreeMap<String, Dto> treeMap = new TreeMap<String, Dto>(myMapData); Iterator<String> treeit = treeMap.keySet().iterator(); while (treeit.hasNext()) { String key = treeit.next(); Dto dto = treeMap.get(key); System.out.print("key: " + key + ", value: "); dto.output(); } } } | cs |
■ 실행결과
[첨부 파일]
'프로그래밍 언어 > Java(연습)' 카테고리의 다른 글
블랙잭 게임(클래스 분할, 파일 저장/불러오기 연습) (0) | 2016.05.15 |
---|---|
배열 리스트, 연결 리스트 (0) | 2016.05.11 |
추상 클래스, 인터페이스 (0) | 2016.05.09 |
클래스(상속), Over Ride (0) | 2016.05.09 |
선수 관리 프로그램(스택 구조, 클래스 연습) (0) | 2016.05.05 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 대상
- wfd
- 여행영어 100일의 기적
- System
- 정렬
- 말하기
- 설명
- 알고리즘
- 영어
- SysUtils
- 교육센터
- Reference
- 상황
- 계산기
- 작문
- VCL
- 자료구조
- Delphi
- SWT
- RA
- 스택
- java
- 일기
- 응용
- tdataset
- 독해
- Pte
- ADODB
- 문법
- 왕초보 영어회화 100일의 기적
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
글 보관함