티스토리 뷰

[주제]

- 해시맵(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<StringString> myMap1 = new HashMap<StringString>();
        
        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




■ 실행결과



[첨부 파일]

Dto.java


mainClass.java


댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
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
글 보관함