Map 인터페이스
특징
- 키(key)와 값(vale)의 쌍으로 연관지어 이루어져있는 데이터의 집합
- 키(key)는 해당 Map에서 고유해야 하고(중복 허용 X)
- 값(value)는 중복하여 저장할 수 있음
- 기존에 저장된 데이터와 중복된 키(key)와 값(value)를 저장하면
- 기존의 값은 없어지고, 마지막에 저장한 값이 남게 됨
- 저장한 순서가 유지되지 않음
키(key) 값은 중복 되어서는 안됨
종류
- HashMap 클래스
- HashTable 클래스
- TreeMap 클래스
- Properties 클레스
HashMap 클래스
특징
- 키(key)와 값(value)을 한쌍으로 묶어 데이터를 저장
- 키(key)를 이용하여 HashMap의 값(value)을 얻을 수 있음
- 중복을 허용하지 않고
- 순서를 보장하지 않음
- 키(key)와 값(value)의 값으로 null이 허용
- (null, null)
< 엔트리 >
- entry
- haskmap에 저장된 객체 중에 (key : value) 형태의 데이터 를 '엔트리'라고 함
entryKey() 메서드
- HashSet에 저장된 객체들을 엔트리로 변환한 후에, HashSet으로 리턴하는 메서드
예제
public class Test3 {
public static void main(String[] args) {
Map<String, String> hashMap = new HashMap<>();
hashMap.put("1", "one");
hashMap.put("2", "two");
hashMap.put("3", "three");
hashMap.get("1");// get(key) = "one"
// hashmap의 key값을 set 집합으로 반환, 순회
for(String key : hashMap.keySet()) {
System.out.println("key : " + key);
System.out.println("value : " + hashMap.get(key));
System.out.println("-----------------");
}
}
}
[ 실행 결과 ]
TreeMap 클래스
정의
- 이진 검색 트리의 형태, 키(key)와 값(value)의 쌍을 이루어진 데이터를 저장
- TreeSet의 원리와 같음
[ TreeSet와의 차이점 ]
이진 검색 트리를 이용하지만
TreeSet은 값(value)만 저장
TreeMap은 키와 값의 쌍인 엔트리(entry)를 저장함
- 키(key) 값을 기준으로 오름차순 정렬이 됨
- 입력 순서에 상관 없이 키(key) 크기 순으로 정렬
- (키 : 값)의 쌍을 정렬된 순서로 저장하므로, 빠른 검색이 가능함
- 하지만 (키 : 값)을 저장하는 동시에 정렬도 함께 하기 때문에, 저장시간이 오래 걸림
[ HashMap과 다른 점 ]
1. TreeMap은 엔트리(키: 값) 저장 시에, key는 입력 순서에 관계없이 크기 순으로 정렬되어 저장됨
2. HashMap은 저장 순서가 없음
정렬되는 순서
숫자 - 영어 대문자 - 영어 소문자 - 한글
장점
- (키 : 값)의 쌍을 정렬된 순서로 저장하므로, 빠른 검색이 가능함
- 정렬된 데이터를 조회해야 하는 범위 검색의 경우, 효율적인 검색이 가능함
단점
- (키 : 값)을 저장하는 동시에 정렬도 함께 하기 때문에, 저장시간이 오래 걸림
- 데이터를 저장할 때 즉시 정렬을 하기 때문에, 추가나 삭제 시에 오래 걸림
'JAVA' 카테고리의 다른 글
[JAVA] 프로세스와 스레드, 시스템 발전 과정(멀티 프로그래밍, 멀티태스킹) (0) | 2024.04.29 |
---|---|
[JAVA] wrapper 클래스, 오토박싱과 언오토박싱 (0) | 2024.04.28 |
[JAVA] Queue 인터페이스 (0) | 2024.04.28 |
[JAVA] 공변성이 없는 제네릭, 제네릭 와일드 카드 (0) | 2024.04.26 |
[JAVA] 제네릭 객체 생성 및 사용하기 (0) | 2024.04.26 |