선행 내용
Map을 이해하기 위해서는 Set에 대한 이해가 필요합니다.
Set, Map 비교
Set은 값이 곧 저장 위치를 나타내는 자료구조입니다.
따라서 중복 저장이 되지 않는 점, 값을 순서대로 출력할 수 없다는 등 부실한 기능이 있었고,
이를 보충하기 위한 방안으로 Set의 좋은 기능은 가져가되, 인덱스를 따로 둠으로써
해당 문제점들을 해결하기 위한 Map이 있습니다.
Map
- 저장
- 조회
EntrySet / KeySet
Set에서는 Iterator를 이용해 저장된 자료를 출력할 수 있었습니다.
Map에서도 Iterator를 통해 출력하는 방법도 있지만, 주로 EnrtySet과 KeySet이라는 개념이 사용됩니다.
KeySet은 저장된 값들의 Key모음이라고 생각하면 됩니다.
int count = 1;
for(int key : hMap.keySet()) {
System.out.println(count + "번째 KeySet : " + key + ", " + hMap.get(key));
}
EntrySet은 저장된 키와 값에 대한 정보룰 모두 가지고 있고, 이들의 모음이라고 생각하면 됩니다.
int count = 1;
for(Map.Entry<Integer, String> mEntry : hMap.entrySet()) {
System.out.println(count + "번째 EntrySet : " + mEntry.getKey() + ", " + mEntry.getValue());
}
HashSet 활용하여 Map 출력
Map<String, String> map = new HashMap<String, String>();
map.put("key01", "value01");
map.put("key02", "value02");
map.put("key03", "value03");
map.put("key04", "value04");
map.put("key05", "value05");
// 방법 01 : entrySet()
for (Map.Entry<String, String> entry : map.entrySet()) {
System.out.println("[key]:" + entry.getKey() + ", [value]:" + entry.getValue());
}
// 방법 02 : keySet()
for (String key : map.keySet()) {
String value = map.get(key);
System.out.println("[key]:" + key + ", [value]:" + value);
}
// 방법 03 : entrySet().iterator()
Iterator<Map.Entry<String, String>> iteratorE = map.entrySet().iterator();
while (iteratorE.hasNext()) {
Map.Entry<String, String> entry = (Map.Entry<String, String>) iteratorE.next();
String key = entry.getKey();
String value = entry.getValue();
System.out.println("[key]:" + key + ", [value]:" + value);
}
// 방법 04 : keySet().iterator()
Iterator<String> iteratorK = map.keySet().iterator();
while (iteratorK.hasNext()) {
String key = iteratorK.next();
String value = map.get(key);
System.out.println("[key]:" + key + ", [value]:" + value);
}
'Algorithm & Data Structure > Data Structure' 카테고리의 다른 글
[자료구조] HashSet, TreeSet (0) | 2021.11.02 |
---|