hayu's 개발 일지

[TIL]240403 Map 본문

기술/java

[TIL]240403 Map

hayu00 2024. 4. 3. 21:08

Map 이란?

// map 생성
Map<타입1, 타입2> map이름 = new HashMap<타입1, 타입2>();
Map<String, String> map = new HashMap<String, String>();
  • Map은 Key 와 Value 한쌍으로 이루어진 인터페이스다.
  • Map은 리스트나 배열처럼 순차적으로 해당 요소 값을 구하지 않고 Key를 통해 Value를 얻는다.
  • 값(Value)은 중복될 수 있지만, Key는 고유한 값(Unique)을 가져야 한다.

Map의 특징

  • Map은 저장 순서를 유지하지 않는다.
  • Key를 통해 Value를 얻어내기 때문에 Key는 중복을 허용하지 않는다. (Value는 중복을 허용한다.)
    • 이미 존재하는 Key값과 동일한 Key값을 넣으면 새로운 Key값으로 갱신된다.

Map 생성 예시

// map 생성 <String, String>
        Map<String, String> map1 = new HashMap<String, String>();

        map1.put("학생1", "김씨");
        map1.put("학생2", "강씨");

        // map 생성 <String, Integer>
        Map<String, Integer> map2 = new HashMap<String, Integer>();

        map2.put("학생1", 1);
        map2.put("학생2", 2);

        // map 생성 <String, List<String>>
        Map<String, List<String>> map3 = new HashMap<String, List<String>>();

        List<String> list = new ArrayList<String>();
        list.add("one");
        list.add("two");
        list.add("three");

HashMap

  • Map 인터페이스를 구현한 대표적인 클래스이다.
  • 해시 함수를 통해 키와 값이 저장되는 위치를 결정한다.
  • → 사용자는 그 위치를 알 수 없고, 삽입되는 순서와 위치 또한 관계가 없다.
  • 많은 양의 데이터를 검색하는 부분에서 뛰어난 성능을 보인다.

Map 메서드

  • put(Object key, Object value) : 주어진 키로 값을 저장한다. 해당 키가 새로운 키일 경우 null을 리턴하지만, 동일한 키가 있을 경우에는 기존의 값을 대체하고 이전의 값을 반환한다.
  • get(Object key) : 주어진 키에 해당하는 값을 반환한다.
  • containsKey(Object key) : 주어진 키가 있으면 true, 없으면 false를 반환한다.
  • containsValue(Object Value) : 주어진 값이 있으면 true, 없으면 false를 반환한다.
  • remove(Object key) : 주어진 키와 일치하는 Map.Entry를 삭제하고 값을 반환한다.
  • size() : 저장된 Entry 객체의 총 갯수를 반환한다.
  • values() : 저장된 모든 값을 Collection에 담아서 반환한다.
  • clear() : 모든 Map.Entry을 삭제한다.

 

참고 자료

- https://pongic.tistory.com/16

- https://velog.io/@dongeranguk/JAVA-Map%EC%9D%B4%EB%9E%80

- https://wakestand.tistory.com/112

- https://devmoony.tistory.com/144

'기술 > java' 카테고리의 다른 글

[TIL]240408 Scanner 클래스  (1) 2024.04.08
[TIL]240406 Set  (0) 2024.04.06
[TIL]240325 ArrayList  (0) 2024.03.25
[TIL]240323 List  (1) 2024.03.23
[TIL]240228 클래스와 생성자(2)  (0) 2024.02.28