개발 수업/JAVA

[Java] 컬렉션 프레임워크/Map 컬렉션(HashMap)

오늘 하루s 2023. 5. 24. 09:00
728x90
더보기

Day18-4. 230523

컬렉션 프레임워크

Map 컬렉션

- Map컬렉션은 키(Key)와 값(value)으로 구성된 Map.Entry 객체를 저장하는 구조.

- 키와 값은 모두 객체

- 키는 중복될 수 없지만 값은 중복저장 가능

 

- 구현클래스 : HashMap, Hashtable, LinkedHashMAp, Properties, TreeMAp

 

  • Map컬렉션의 주요 메소드

 

 

HashMap

- 키 객체는 hashCode()와 equals()를 재정의해 동등 객체가 될 조건을 정해야함.

객체가 달라도 동등 객체라면 같은 키로 간주하고 중복 저장되지 않도록 하기 위함.

 

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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
package chap13;
 
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;
 
 
public class HashMap {
 
    public static void main(String[] args) {
        //Map인터페이스타입 변수선언 및 구현클래스객체생성
        Map map = new HashMap();
        //객체추가 - map참조변수.put(Object key,Object value)
        map.put("회원번호"1);
        map.put("키"173.1);
        map.put("약관동의"true);
        map.put("email수신여부"true); //값 중복 허용
        map.put("회원등급"'A');
        map.put("회원명""홍길동");
        System.out.println("-------객체를 하나씩 처리----------------");
        Set<Map.Entry<String,Object>>entrySet  = map.entrySet();
        Iterator<Map.Entry<String,Object>>entryIter = entrySet.iterator();
        while (entryIter.hasNext()) {
            Map.Entry<String, Object> entry = entryIter.next();
            String key = entry.getKey(); //키 가져오기
            Object value = entry.getValue(); //값 가져오기
            System.out.println(key+":"+value);
        }
        
 
        System.out.println("저장된 키의 총수 size()="+map.size());    
        System.out.println("-----------------------");
        System.out.println();
        
        
        //키를 가져오기
        System.out.println("-----keySet을 이용하여 값 가져오기-------");
        Set<String> keys= map.keySet(); //이미 값이 채워져있음. <String>으로 제너릭
        Iterator<String> iter = keys.iterator();
        System.out.println("key:value");
        while (iter.hasNext()) {
            String key = iter.next();
            System.out.println(key+":"+map.get(key));
        }
        
        
        //객체검색 - map참조변수.get(Object key)
        int memberNo = (Integer)map.get("회원번호");
        System.out.println("memberNo="+memberNo);
        double height = (Double)map.get("키");
        boolean  agreeYN = (Boolean)map.get("약관동의");
        boolean  emailYN = (Boolean)map.get("email수신여부");
        char  grade = (Character)map.get("회원등급");
        String memberName = (String)map.get("회원명");
        
    }
 
}
cs
 
더보기

* 실행 결과

 

-------객체를 하나씩 처리----------------
email수신여부:true
키:173.1
약관동의:true
회원등급:A
회원번호:1
회원명:홍길동

저장된 키의 총수 size()=6
-----------------------

-----keySet을 이용하여 값 가져오기-------
key:value
email수신여부:true
키:173.1
약관동의:true
회원등급:A
회원번호:1
회원명:홍길동
memberNo=1

 

728x90