java

39. 컬렉션 프레임워크-Map

dalc3154 2025. 3. 6. 13:41

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