1. Map Interface란?
- 키(key)와 값(value)의 쌍으로 요소를 저장하는 데이터 구조
- 키는 고유한 데이터를 가지며 중복키를 허용하지 않음
- 동일한 키에 서로 다른 값을 전달하는 경우에는 기존 값이 새로운 값으로 덮어씌워진다.
name : cyrano, name: bergerac
위 경우는 불가능하며 오직 bergerac 만 name 이라는 키값에 존재하게 된다
- 그러나 서로 다른 키에 동일한 값은 가능하다.
name : bergerac nickname : bergerac
위 경우는 가능하다.
**이처럼 키의 유일성, 값의 중복성을 보장하지만 순서를 보장하지 않는다.
단. LinkedHashMap은 예외적으로 순서를 보장하며 키를 통한 빠른 검색이 가능하다.
2. Map Interface 종류(구현체)
1. HashMap
가장 많이 사용하는 Map구현체이며 key와 value에 null을 허용한다. 빠른 검색 및 삽입 성능을 제공하지만 순서유지는 되지 않는다.
2. LinkedHashMap
HashMap+삽입순서가 유지되는 MAP이다
삽입 순서가 중요하고 빠른 검색이 필요할 때 주로 사용한다.
3. TreeMap
Key에 따라 자동 정렬 기능을 보장하며 Key에 Null값을 허용하지 않는다.
3. Map Interface Method
Map<키타입, 값타입> 인스턴스명 = new Map종류<>();
Map<String, Integer> students = new HashMap<>();//이름(키), 나이(값)
1. put(키, 값) : 키와 값을 Map 추가
students.put("cyrano",25);
students.put("bergerac",34);
//결과값 : {cyrano=25, bergerac=34}
//{키 = 값, 키 = 값} - 키와 값의 구분을 =으로 표시
>> 이번 경우에는 순서대로 나왔지만 원래는 삽입 순서가 보장되지 않는다.
2. get(키) : 지정된 키의 값을 반환한다.
System.out.println(students.get("cyrano"));//결과 : 25
3. remove(키) : 지정된 키의 값을 삭제 후 반환한다.
students.remove("cyrano");
System.out.println(students);//{bergerac=34}
cyrano데이터가 삭제되어 bergerac 데이터만 남고 이것을 반환한다.
4. containKey(키) : 해당 키가 Map에 있는지 확인하여 boolean 값을 반환한다.
System.out.println(students.containsKey("cyrano"));//결과 : false
System.out.println(students.containsKey("bergerac"));//결과 : true
cyrano데이터가 삭제되어 bergerac 데이터만 남았기 때문에 cyrano의 경우엔 해당 키값이 없어 false를 출력하고 bergerac는 키값이 존재하기 때문에 true를 반환한다.
5. size()
System.out.println(students.size());//결과 : 1
6. keySet() : Map의 키를 Set으로 반환한다.
System.out.println(students.keySet());
7. values() : Map 의 값을 컬렉션 타입으로 반환
Collection<Integer> ages = students.values();
System.out.println(ages);
+) 콜렉션 타입은 하위 인터페이스로 변환 가능하다.
List<Integer> listAges = new ArrayList<>(ages);
System.out.println(listAges);
8. entrySet(): Map의 키와 값을 Set 으로 반환한다.
System.out.println(students.entrySet());
'웹개발 > JAVA' 카테고리의 다른 글
| 추상화(Abstract)-abstract class (0) | 2025.02.27 |
|---|---|
| 클래스 형(ClassType)변환 (0) | 2025.02.26 |
| Collection - Set Interface (1) | 2025.02.24 |
| Collection - Java List (1) | 2025.02.23 |
| Collection Framework (1) | 2025.02.22 |