키(Key) 와 값(Value)을 한 쌍으로 갖는 데이터 구조
키는 중복 불가능, 값은 중복 가능
대표적인 구현체 클래스 : HashMap, properties 등
ex) 주민등록번호와 이름, 전화번호와 이름 등
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
|
Map map = new Hashmap();
map.size()
map.isEmpty()
// 크기와 비어있는지를 확인
// Object put(Object key, Object value) : key 에 해당하는 value 저장
map.put("admin", "관리자");
map.put("hong123", "홍길동");
map.put("hong456", "홍길동"); // Map 객체는 값(value)에 대한 중복 허용
map.put("admin", "운영자"); // Map 객체는 키(key)에 대한 중복 허용하지 않음.
// 추가와 수정에 사용되는 메서드가 동일 관리자-> 운영자로 교체
// put() 메서드 리턴타입이 있는 이유는 중복된 키 지정 시 제거되는 값을 리턴
System.out.println(map.put("admin", "관리자")); // map.put() -> 이전값(삭제되는 값) 리턴 기존 운영자 리턴됨
System.out.println(map.put("admin1", "운영자")); // 중복 키가 아니므로 null 리턴됨
// Object get(Object key) : key 에 해당하는 value 리턴 (키가 존재하지 않으면 null 리턴)
System.out.println("admin 키(아이디) 의 값(이름) : " + map.get("admin"));
System.out.println("admin11 키(아이디) 의 값(이름) : " + map.get("admin11"));
// boolean containsKey(Object key)
// boolean containsValue(Object value) // key 와 value 가 존재하는지 여부 리턴
// Set kyeSet() : 객체 안의 모든 key 들을 Set 타입 객체로 리턴
Set keySet = map.keySet();
System.out.println("모든 키 :" + keySet);
// Collection values() : 객체 안의 모든 value 들을 Collection 타입 객체로 리턴
// => Collection 타입의 자식들 타입으로도 전달 받을 수 있음
// => 단, Collection -> List 또는 Set 으로 다운캐스팅이 불가능 하므로 ( 리턴값의 주소는 Map 이라)
// new 연산자를 사용하여 객체 생성 파라미터에 values() 메서드 리턴값 전달
List valueList = new ArrayList(map.values());
System.out.println("모든 값 : " + valueList);
// 또는 Collection 타입 변수로 저장도 가능
Collection collection = map.values();
System.out.println(collection);
// Set entrySet() : 모든 키와 값의 쌍(셋트) 리턴
System.out.println(map.entrySet());
[admin1=운영자, admin=관리자, hong456=홍길동, hong123=홍길동]
// Object remove(Object key) : key 에 해당하는 key 와 value 를 모두 삭제(삭제 값 리턴)
System.out.println(map.remove("admin1 키 삭제 : " + "admin1"));
System.out.println(map.remove("admin11")); // 키가 존재하지 않으므로 null 리턴
// boolean remove(Object key, Object value) : key 와 value에 해당하는 key 와 value 를 모두 삭제(삭제 값 리턴)
// 삭제될(존재할) 경우 true, 삭제되지(존재하지) 않을 경우 false 리턴
System.out.println("admin 키의 관리자 1 값 삭제 : " + map.remove("admin", "관리자1")); // false
System.out.println("admin 키의 관리자 값 삭제 : " + map.remove("admin", "관리자")); // true
|
cs |
'Language > Java' 카테고리의 다른 글
제네릭(Generic) (0) | 2020.06.25 |
---|---|
Stack(스택) vs Queue(큐) (0) | 2020.06.25 |
enum 타입(열거형 데이터 타입) (0) | 2020.06.24 |
BigInteger & BigDecimal (0) | 2020.06.24 |
Random 클래스 (0) | 2020.06.24 |