개발 수업/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