19 Feb 2020
Map
Map
- Map<K, V>
- K : Key 타입, V : Value 타입
- 주요 메소드
- V put(K key, V value) : 데이터 입력
- V get(K key) : 특정 key에 대한 value를 추출해라
- V remove(Object key) : 특정 key에 대한 map 요소를 삭제해라
- key의 중복을 허용하지 않는다.
- map.containsKey(key) : 해당 key가 존재하는 지 확인해주는 메소드
- value는 중복 허용
- 동일 키에 대한 입력은 가능하지만 새로운 값이 들어가는 것이 아니라 업데이트 형식.
HashTable
- null을 허용하지 않는다.
- 동기화가 되어있다.
- 하나의 자원을 a가 사용하고 있으면 b는 접근 할 수 없다.
HashMap
- null 허용, 동기화가 되어 있지 않음.
- 자원 공유의 문제점, 멀티 쓰레드 환경에서 조심해야 한다.
entrySet(), keySet()
- Map의 값을 전체 출력할 때 사용하는 메소드
entrySet()
- Set<Map.Entry<K, V» entry = map.entrySet();
- key와 value 모두 필요한 경우 사용
- entrySet() 예시
Set<Entry<String, String>> entries = map.entrySet(); for (Entry<String, String> entry : entries) { System.out.println("Key: " + entry.getKey() + ", Value: " + entry.getValue()); }
keySet()
- key의 값만 필요한 경우 사용
- keySet() 예시
for(String key : map.keySet()){ String value = map.get(key); System.out.println("Key: " + key + ", Value: " + value); }
Map과 iterator
- Map은 Collection에 포함되어 있지 않기 때문에 Iterator를 바로 사용할 수 없다.
- iterator를 사용하고 싶다면 keySet()이나 entrySet()을 이용해야 한다.
- entrySet() 이용 예시
- Generic O
Map<String, String> map = new HashMap<String, String>(); Iterator<Map.Entry<String, String>> entries = map.entrySet().iterator(); while (entries.hasNext()) { Map.Entry<String, String> entry = entries.next(); System.out.println("Key = " + entry.getKey() + ", Value = " + entry.getValue()); }
- Generic X
Iterator entries = map.entrySet().iterator(); while(entries.hasnext()){ Map.Entry entry = (Map.Entry)entries.next(); System.out.println("Key = " + entry.getKey() + ", Value = " + entry.getValue()); }
- Generic O
- keySet() 이용 예시
Iterator<String> iterators = map.keySet().iterator(); while(iterators.hasNext()){ String key = iterators.next(); String value = map.get(key); System.out.println("Key: " + key + ", Value: " + value); }
Til next time,
Jeong-Yoon
at 00:00
