[TIL] 컬렉션 - java.util.Map<K, V> 인터페이스 & 구현클래스
java.util.Map<K,V>인터페이스
- 키(KEY)를 값(Value)에 매핑하는 객체
- 동일한 키를 두개 이상 등록할수 없다. = 키는 중복 x
- 각 키에 하나의 값(value)만 매핑 된다.
- 구현 클래스 : HashMap, TreeMap(키를 기준으로 정렬 저장), LinkedHashMap (입력한 순서대로 저장), Properties(파일 입출력 지원 : 키와 값을 string으로 제한)
- 구현 클래스 계층도 :
주요 메소드
V put(K key, V value) | key 와 value로 주어진 값을 저장한다. |
V replace(K key, V value) | 해당 맵에서 전달된 키에 대응하는값을 특정 값으로 변경한다. |
boolean replace(K key, V oldValue, V newValue) | 해당 맵에서 특정 값에 대응하는 전달된 키의 값을 새로운 값으로 변경 |
int size() | 맵 내의 키오 값의 매핑의 수를 돌려준다 |
V get(Obeject key) | 해당 맵에서 전달된 키에 대응하는 값을 반환 |
boolean containKey(Object key) | 지정된 키의 매핑이 맵에 포함되어 있는 경우 true 리턴 |
boolean containValue(Object value) | 맵의 지정된 값에 1개이상에 키를 매핑하는 경우 true 리턴 |
boolean isEmpty() | 맵이 키와 값의 매핑을 보관유지 하지 않는 경우 true 리턴 |
Set<K> keySet() | 이 맵에 포함되는 키의 set 객체를 리턴 |
Set<Map.Entry <K,V>> entrySet() | 이 맵에 포함되는 키의 set 객체를 리턴 |
boolean equals(Object o) | 지정된 오브젝트가 이 맵과 동일한지 여부 비교 |
void clear() | 맵으로 부터 매핑을 모두 삭제한다. |
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
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
|
package ex0814;
import java.util.HashMap;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
import java.util.Set;
public class Map_Ex1 {
public static void main(String[] args) {
/*
* Map<K,V> : 키와 값
* 키는 중복을 허용하지 않는다.
* 기본적으로 입력순서를 유지하지 않는다.(Linked를 사용하면 순서o)
* Iterator가 존재하지 않는다. : 반복자가 없고 향상된 for문 사용 불가
* 구현클래스 : Hashtable(동시성 지원), HashMap(동시성 지원x)
* 메소드 :
* 데이터 추가 -> put(키, 값)
* 데이터 반환 -> get(키) = > 값 반환
* 데이터 삭제 -> remove(키)
*/
Map<String, Integer> map = new HashMap<>();
// 데이터 추가 : put
// 키는 중복을 허용하지 않기때문에 키가 같으면 값을 덮는다.
map.put("영헌", 1000);
map.put("주영", 10);
map.put("혜리", 15);
map.put("성원", 30);
map.put("쌍용", 5);
map.put("자바", 100);
map.put("풀스텍", 5);
map.put("영헌", 100);
map.remove("쌍용");
System.out.println(map);
Integer a = map.get("영헌");
System.out.println(a);
System.out.println(map.containsKey("영헌")); // 해당 키값이 있으면 true
//Map의 Value를 LinkedList로
List<Integer> list = new LinkedList<>(map.values());
System.out.println(list);
//[100, 5, 30, 15, 10, 100, 5]
//Map의 key를 Set으로
Set<String> keys = map.keySet();
System.out.println(keys);
//[영헌, 쌍용, 성원, 혜리, 주영, 자바, 풀스텍]
System.out.println("전체 출력 -1");
Set<String> set = map.keySet(); // 키에 대한 set 객체
Iterator<String> it = set.iterator();
while(it.hasNext()) {
String key=it.next();
Integer value = map.get(key);
System.out.println(key+"->"+value);
}
/*
* Map.Entry : 맵의 앤트리 (키와 값의 한쌍<페어>)
*
*/
System.out.println("전체 출력 -2");
Set<Map.Entry<String, Integer>> set2 = map.entrySet();
System.out.println(set2);
//[영헌=100, 쌍용=5, 성원=30, 혜리=15, 주영=10, 자바=100, 풀스텍=5]
Iterator<Map.Entry<String, Integer>> it2 = set2.iterator();
while(it2.hasNext()) {
Map.Entry<String, Integer> e = it2.next();
String key = e.getKey();
Integer value = e.getValue();
System.out.println(key+"->"+value);
}
// 영헌->100
// 쌍용->5
// 성원->30
// 혜리->15
// 주영->10
// 자바->100
// 풀스텍->5
}
}
|
cs |
'Language > JAVA' 카테고리의 다른 글
[JAVA 복습] 접근 제어자 (Access Modifier) 와 캡슐화 (0) | 2022.02.10 |
---|---|
[TIL] 컬렉션 - java.util.Queue<E> 인터페이스 & 구현클래스 (0) | 2020.09.08 |
[TIL] 컬렉션 - java.util.Set<E> 인터페이스 & 구현 클래스 (0) | 2020.09.07 |
[TIL] 컬렉션 - java.util.Enumeration & Iterator (0) | 2020.09.07 |
[TIL] 컬렉션 - java.util.List<E> 인터페이스 & 구현 클래스 (0) | 2020.08.24 |
댓글