hayu's 개발 일지

99클럽 코테 스터디 12일차 TIL + HashMap 메서드 본문

자료구조&알고리즘

99클럽 코테 스터디 12일차 TIL + HashMap 메서드

hayu00 2024. 6. 1. 21:02

학습 키워드

- HashMap

 

공부한 내용

HashMap 사용(메서드)

 

HashMap 선언

  • HashMap을 생성하려면 키 타입과 값 타입을 파라미터로 주고 기본생성자를 호출한다.
  • HashMap은 저장공간보다 값이 추가로 들어오면 List처럼 저장공간을 추가로 늘리는데 List처럼 저장공간을 한 칸씩 늘리지 않고 약 두배로 늘린다.

→ 이 때, 과부하가 많이 발생한다.

⇒ 초기에 저장할 데이터 개수를 알고 있다면 Map의 초기 용량을 지정해주는 것이 좋다.

       HashMap<String,String> map1 = new HashMap<String,String>();//HashMap생성
        HashMap<String,String> map2 = new HashMap<>();//new에서 타입 파라미터 생략가능
        HashMap<String,String> map3 = new HashMap<>(map1);//map1의 모든 값을 가진 HashMap생성
        HashMap<String,String> map4 = new HashMap<>(10);//초기 용량(capacity)지정
        HashMap<String,String> map5 = new HashMap<>(10, 0.7f);//초기 capacity,load factor지정
        HashMap<String,String> map6 = new HashMap<String,String>(){{//초기값 지정
            put("a","b");
        }};

HashMap 값 추가 - put()

  • HashMap에 값을 추가하려면 put(key,value) 메소드를 사용된다.
HashMap<Integer,String> map = new HashMap<>();//new에서 타입 파라미터 생략가능
        map.put(1,"java"); //값 추가
        map.put(2,"python");
        map.put(3,"ruby");

HashMap 값 삭제 - remove() / clear()

  • HashMap에 값을 제거하기 위해 remove(key) 메서드를 사용할 수 있다.
  • 오직 키값으로만 Map의 요소를 삭제할 수 있다. 모든 값을 제거하려면 clear() 메서드를 사용하면 된다.
HashMap<Integer,String> map = new HashMap<Integer,String>(){{//초기값 지정
    put(1,"사과");
    put(2,"바나나");
    put(3,"포도");
}};
map.remove(1); //key값 1 제거
map.clear(); //모든 값 제거

 

회고

발생한 문제

- HashMap에 대한 공부를 진행했는데 관련 메서드에 대한 공부가 부족하다는 것을 느끼게 되었다.

 

해결 방법

- 관련 메서드를 공부하고 정리했다. 

 

알게된 내용

- HashMap의 저장공간을 지정해주는게 좋다는 것과 키 값으로만 요소를 제거할 수 있다는 것을 알게되었다.