일단 Map의 특징을 먼저 알아보자면
Map은 선언 시 <key, value>로 값을 넣는다
Key와 Value는 한 쌍으로
Key로 식별하고 Value에 사용할 값을 넣는 식이다
여기서 Key는 중복이 불가능하고
동일한 Key 값으로 값을 넣을 시
최근에 넣은 값이 적용된다
이제 Map의 주요 메소드들을 통해 사용법을 알아보자면
Map 안에 값 넣기
Map.put(key,value);
Map 안의 값 가져오기
Map.get(key);
Map 크기 확인
Map.size();
Map 안의 내용 변경하기
Map.replace(key, value);
Map 안에 특정 Key, Value 들었는지 확인
Map.containsKey(key);
Map.containsValue(value);
Map의 크기가 0인지 확인
Map.isEmpty();
Map 안의 내용 삭제
Map.remove(key);
Key가 있으면 Value 없으면 default 호출
Map.getOrDefault(key, default);
- Map에 key에 해당하는 값이 없을 경우 default 호출
Key가 없거나 Value가 null일때만 삽입
Map.putIfAbsent(key, value);
Map은 선언 시
HashMap, TreeMap, HashTable, LinkedHashMap
으로 선언이 가능한데 차이점은 아래와 같다
HashMap
- Map 안에서 key/value에 따른 순서 없음
TreeMap
- key 값에 따라 오름차순 정렬,
정렬 때문에 대량의 데이터 삽입/삭제시 오래 걸림
LinkedHashMap
- 삽입 순서에 따라 정렬
HashTable
- key/value에 null을 넣을 수 없음,
동기화(synchronized) 되어있음
자세한 내용은 하단 참조
마지막으로 사용한 예제는 아래와 같다
public static void main(String[] args) {
HashMap<String, Integer> map = new HashMap<String, Integer>(); // Map 선언
map.put("Soraka", 450);
map.put("Garen", 4800); // Map 안에 값 넣기
// Map의 Key는 중복 불가, 동일한 Key에 다른 값을 넣을 경우 최근에 넣은 값 적용
map.put("Garen", 1350);
// Key를 사용하여 Map 안의 값 가져오기
System.out.println("Map Value : " + map.get("Garen"));
System.out.println("Map size : " + map.size()); // 맵 크기 확인
map.replace("Garen", 450); // Key 값의 내용을 변경
System.out.println("Garen Value : " + map.get("Garen"));
// Key가 존재하는지 확인
System.out.println("Key Exist : " + map.containsKey("Garen"));
// Value가 존재하는지 확인
System.out.println("Value Exist : " + map.containsValue(450));
System.out.println("Map Empty : " + map.isEmpty()); // Map의 크기가 0인지 확인
map.remove("Garen"); // key에 해당하는 값 삭제
map.put(null, 150);
map.put("Garen", 450);
System.out.println("Key가 있으면 Value 없으면 default : " + map.getOrDefault("Ahri", 6300));
// Key가 없거나 Value가 null일 때만 삽입
map.putIfAbsent("Master Yi", 6300);
map.putIfAbsent("Garen", 6300);
System.out.println("Key가 없거나 Value가 null일 때만 삽입 : " + map.get("Master Yi"));
System.out.println("Key가 없거나 Value가 null일 때만 삽입 : " + map.get("Garen"));
}
'Language > Java' 카테고리의 다른 글
자바 소켓 통신 서버 & 클라이언트 작성 및 연결해보기 (2) | 2019.12.12 |
---|---|
자바 디버그 설정 및 실행방법 (0) | 2019.12.04 |
자바 Set 사용법부터 출력까지 (0) | 2019.11.27 |
자바 set 정렬 기준 및 예제 (0) | 2019.11.26 |
자바 void return 메소드 뜻부터 호출까지 (0) | 2019.11.26 |
댓글