Map 인터페이스
키(Key)와 값(value)의 쌍으로 요소를 저장하는 데이터 구조
키는 고유한 데이터를 가짐(중복 불허용)
동일한 키에 다른 값을 전달하면 기존 값이 새 값으로 덮어씌워짐
서로 다른 키에 동일한 값이 들어갈 수 있음
키의 '유일성'과 값의 '중복성'을 보장함
순서는 보장하지 않음(LinkedHashMap은 예외)
>>키값을 기반으로 빠른 검색이 가능
Map 인터페이스 종류( 구현체 )
HashMap
가장 많이 사용됨
키와 값에 null 허용
빠른 검색과 삽입 성능을 제공함
순서 유지가 안됨
TreeMap
키에 따른 자동 정렬 보장
키에 null값을 허용하지 않음
사용 예시)
public static void main(String[] args) {
// Map 인터페이스 메소드
// Map키<키타입, 값타입> 인스턴스명 = new map종류<>();
Map<String, Integer> students = new HashMap<>();
// 이름- 키, 나이- 값
// put(키, 값): 키와 갓을 Map추가
students.put("이승아", 29);
students.put("이도경", 31);
students.put("김명진", 34);
System.out.println(students);
// {이승아=29, 김명진=34, 이도경=31} >> {키=값, 키=값}. 키와 값의 구분을 =로 표시
// >> 삽입 순서 보장 X
// get(키): 지정된 키의 값을 반환
System.out.println(students.get("이도경")); // 31
// remove(키): 지정된 키의 값을 삭제 후 반환
students.remove("이승아");
System.out.println(students); // {김명진=34, 이도경=31}
// containsKey(키): 해당 키가 Map에 있는지 확인하여 boolean 값을 반환
System.out.println(students.containsKey("이승아")); // false
System.out.println(students.containsKey("김명진")); // true
// size()
System.out.println(students.size()); // 2
// keySet(): Map의 키를 Set으로 반환
System.out.println(students.keySet()); // [김명진, 이도경]
// values(): Map의 값을 컬렉션타입으로 반환
Collection<Integer> ages = students.values();
System.out.println(ages);// [34, 31]
//Collection 타입은 하위 인터페이스로 변환 가능
List<Integer> listAges = new ArrayList<>(ages);
System.out.println(listAges); // [34, 31]
// entrySet(): Map의 키와 값을 Set으로 반환
System.out.println(students.entrySet()); // [김명진=34, 이도경=31]
}
'java' 카테고리의 다른 글
실습) 재고 관리 시스템 만들기 (1) | 2025.03.06 |
---|---|
실습) 도서 관리 시스템 (0) | 2025.03.06 |
38. 컬렉션 프레임워크-Set (1) | 2025.03.06 |
실습) 리스트 활용 (0) | 2025.03.06 |
37. 컬렉션 프레임워크-List (0) | 2025.03.06 |