Notice
Recent Posts
Recent Comments
Link
«   2025/02   »
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
Tags more
Archives
Today
Total
관리 메뉴

Formoat's Open Blog

컬렉션 - Map 본문

Java/Java Basic

컬렉션 - Map

snd-snd 2019. 9. 4. 00:11
인터페이스 구현 클래스 특징
Map HashMap, Hashtable, LinkedHashMap, Properties, TreeMap 키와 값으로 구성, 키와 값은 모두 객체이고 키는 중복(X), 값은 중복(O) Map.Entry라는 키와 값을 갖는 객체를 생성해 컬렉션에 저장하는 구조

 

1. HashMap

키와 값으로 구성되어 있으며 키는 중복이 허용되지 않는다. Set과 마찬가지로 동등 객체 비교를 위해 키 객체의 경우엔

hashCode() 메소드와 equals() 메소드가 재정의 되어 있어야 한다. 키 타입은 주로 String을 사용한다.

2. Hashtable

HashMap과 동일한 구조로 이루어져 있다. 차이점은 List의 Vector와 같이 스레드 동기화(synchronized)가 되어있어

멀티 스레드 환경에서 안전하게 사용할 수 있다.

3. Properties

Hashtable의 하위클래스로 Hashtable의 모든 특징을 그대로 가지고 있다. 다만 Properties의 키와 값은 모두 String 타입만

사용하도록 제한되어 있다. 프로퍼티 파일을 읽을 때 사용이 되며, 이 파일은 옵션 정보, DB 연결 정보, 국제화 정보등 을 기록한

텍스트 파일로서 변경이 잦은 문자열을 저장해 유지보수를 쉽게 할 수 있도록 만들어 준다.

 

 

Function Return Type Method Remarks
추가 V put(K key, V value) 키와 값을 저장 저장에 성공할 경우 값을 반환
V replace(K key, V value) 전달된 키에 해당하는 값을 특정 값으로 대체
boolean replace(K key, V oldValue, V newValue) 전달된 키와 값에 해당하는 값을 특정 값으로 대체
검색 boolean containsKey(Object key) 전달된 키를 포함하고 있는지 확인
boolean containsValue(Object value) 전달된 값에 해당하는 하나 이상의 키를 포함하고 있는지를 확인
Set<Map.entry<K, Y>> entrySet() 해당 맵에 저장된 키, 값을 Map.entry객체로 Set에 담아 반환
V get(Object key) 전달된 키에 대응하는 값을 반환, 만약 없다면 null을 반환
Set<K> keySet() 해당 맵에 포함되어 있는 모든 키를 저장시킨 Set을 반환
Collection<V> values() 해당 맵에 저장된 모든 값을 Collection에 담아서 반환
int size() 저장된 매핑의 총 개수를 반환
boolean isEmpty() 맵이 비어있는지 확인
제거 void clear() 해당 맵에 저장된 모든 매핑을 제거
V remove(Object key) 해당 맵에 전달된 키에 대응하는 매핑을 제거
boolean remove(Object key, Object value) 해당 맵에 전달된 키, 값에 대응하는 매핑을 제거

<표> Map 컬렉션의 주요 메소드

 

 

 

MapExample.java

public class MapExample {

	public static void main(String[] args) {
		
		Map<String, Integer> map = new HashMap<String, Integer>();
		map.put("1", 10);
		map.put("2", 20);
		map.put("3", 30);
		map.put("4", 40);
		
		Set<String> keySet = map.keySet();
		for (String key : keySet) {
			Integer value = map.get(key);
			System.out.println("key:"+key+" "+"value:"+value);
		}
		
		System.out.println();
		
		Set<Map.Entry<String, Integer>> entry = map.entrySet();
		for (Map.Entry<String, Integer> ent : entry) {
			String key = ent.getKey();
			int value = ent.getValue();
			System.out.println("key:"+key+" "+"value:"+value);
		}
	}
}

 

// 실행결과 //
----------------------------------------------------
key:1 value:10
key:2 value:20
key:3 value:30
key:4 value:40

key:1 value:10
key:2 value:20
key:3 value:30
key:4 value:40

'Java > Java Basic' 카테고리의 다른 글

컬렉션 - Stack, Queue  (0) 2019.09.04
컬렉션 - Tree  (0) 2019.09.04
컬렉션 - Set  (0) 2019.09.04
컬렉션 - List  (0) 2019.09.04
컬렉션 프레임워크 (Collection Framework)  (0) 2019.09.03
Comments