budtree
나를 조금만 더 완성해보는 날
budtree
전체 방문자
오늘
어제
  • 분류 전체보기 (77)
    • 💝 Computer Science (5)
      • OS (1)
      • Network (1)
      • Database (3)
    • 🐤 study (21)
      • kubernetes🕸️ (0)
      • Spring Boot🍃 (1)
      • JPA (2)
      • Infra (2)
      • HTML | CSS (3)
      • Java (6)
      • Kotlin (3)
      • etc (4)
    • 💻 Project (3)
      • memoir & diary 📚 (1)
      • class (0)
      • project (2)
    • 🔥 Problem Solving (38)
      • programmers (30)
      • SQL (8)
      • BOJ (0)
    • ✨ daily (10)
      • diary (5)
      • exercise (5)
      • travel (0)
      • review (0)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • Summer/Winter Coding
  • 개린이
  • 프린이
  • 헬린이
  • pt
  • 월간 코드 챌린지
  • 블랙멀티짐
  • kotlin
  • 코테
  • 카카오코테
  • 코린이
  • 코딩테스트
  • 월간코드챌린지
  • 취업준비
  • css
  • 자바
  • ArrayList
  • HashMap
  • 프로그래머스
  • 코틀린
  • 카카오
  • 헬스장
  • 서울대입구 헬스장
  • 일기
  • 피티
  • 2018 KAKAO BLIND RECRUITMENT
  • 카카오코딩테스트
  • java
  • 취업
  • programmers

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
budtree

나를 조금만 더 완성해보는 날

[Java] HashMap정리
🐤 study/Java

[Java] HashMap정리

2022. 2. 15. 14:45
🔥 이 포스팅은 노마드코더, 자바의정석님의 영상을 보고 간결하게 정리했습니다.

HashMap은 key-value 시스템으로 Map 인터페이스를 구현한 대표적인 컬렉션 클래스다.

 

🐤 HashMap과 List 비교

List : O(N) - 일일히 아이템을 탐색하는 구조(아이템이 많아질수록 시간이 증가)

HashMap : O(1) - 찾는데 단 1 스텝만 들어감 => 매우 빠름!

 

🐤 해싱(Hashing)이란?

hash function을 통해 data를 저장하고 읽어오는 방법

key값을 넣으면 index(저장위치, Hash Code)를 알려준다.

 

⭐️ 해싱 순서 :

키로 해시함수 호출 -> hash function을 통해 hash code얻어옴 -> hash code에 대응하는 링크드리스트 배열에서 찾음 -> 키와 일치하는 데이터를 찾음.

 

🐤  주요 메소드

entrySet() : key - value쌍을 가져옴

keySet() : key값들만 가져옴

values() : value들만 가져옴

get(Object key) : key값을 통해 value를 가져옴

getOrDefault(Object key, Object defaultValue) : key값이 없으면 defaultValue의 값을 반환함, 보통 put이랑 같이 사용하는듯

boolean containsKey(Object key) : key가 테이블에 있는 값인지의 여부를 확인

boolean containsValue(Object value) : value가 테이블에 있는 값인지의 여부를 확인

 

 

+)

hash table은 배열과 링크드리스트가 조합되어있는 구조 -> index번호를 통해서 값을 찾음.  

충돌(Hash Collision)이 생길 경우 선형검색을 해야 하기 때문에 매번 O(1)이라고 할 순 없음.

 

예시를 통한 이해가 필요하다면 자바의 정석 HashMap(2) 영상을 참고하시는 것을 추천드립니다!

추가적으로 알게된 점이 생긴다면 계속 포스팅 하겠습니다.

'🐤 study > Java' 카테고리의 다른 글

[Java] ObjectMapper란? | 직렬화, 역직렬화 | Jackson 라이브러리 | Serialize, Deserialize | Json Parsing  (0) 2022.07.28
[Java] 에러처리 | Try-catch | 컴파일 오류, 런타임 오류, 논리 오류 | 예외처리 방법 | checked, unchecked exception | 예외 우선순위  (0) 2022.07.23
[Java] length, size()의 차이  (0) 2022.02.19
[Java] 정규식 정리  (0) 2022.02.02
[Java] ArrayList<Integer>를 int[]로 변환하는 방법  (0) 2022.01.28
    '🐤 study/Java' 카테고리의 다른 글
    • [Java] 에러처리 | Try-catch | 컴파일 오류, 런타임 오류, 논리 오류 | 예외처리 방법 | checked, unchecked exception | 예외 우선순위
    • [Java] length, size()의 차이
    • [Java] 정규식 정리
    • [Java] ArrayList<Integer>를 int[]로 변환하는 방법
    budtree
    budtree
    개발, 운동, 일상등의 글을 올립니다.

    티스토리툴바