(10) HashMap과 Hashtable

2022. 2. 3. 14:41·자바/컬렉션 프레임워크

1. HashMap과 Hashtable의 관계

- 이 둘의 관계는 ArrayList와 Vector와의 관계가 같아서 새로운 버전인 HashMap을 사용할 것을 권장한다.

 

 

 

 

2. HashMap 개념

- Map의 특징상 키와 값을 묶어서 하나의 entry(데이터)로 저장하는 특징을 가진다.

 

- 또한 해싱을 사용하기 때문에 많은 양의 entry를 검색하는데 있어서 뛰어난 성능을 가진다.

 

- HashMap은 Entry라는 내부 클래스를 정의하고, 다시 Entry타입의 배열을 선언한다.

( 여기서 Entry 내부 클래스를 정의하는 이유는 key와 value는 연관있는 entry로 보기 때문에 각각의

배열보다는 하나의 클래스로 정의해서 하나의 배열로 다루는 것이 데이터의 integrity 측면에서 더

바람직하기 때문이다. ) - 아래의 그림 참고

 

- HashMap에 대한 상세한 메서드들은 자바의 정석 645p를 참고하자.

 

 

 

 

3. HashMap을 이해하기 위한 예제(1)

: 입력된 id와 password가 저장된 HashMap에 있는 entry와 같은지 확인하는 예제이다.

 

 

 

 

 

4. HashMap을 이해하기 위한 예제(2)

: 입력된 이름과 성적을 iterator()로 읽어 들여 출력해보는 예제이다.

 

( 중복은 허용되지 않기 때문에, 'lee'의 값은 마지막에 저장된 것이 들어가게 된다. )

( Map은 키와 값으로 구성되어 있기 때문에 바로 Collections의 메서드를 사용할 수 없으므로, map.values()를

사용해서 Collection으로 변환해서 사용해야 한다. )

 

 

 

 

5. HashMap을 이해하기 위한 예제(3)

: HashMap을 이용해서 연락처를 만들어보는 예제이다.

 

( HashMap은 데이터와 키 둘 다 Object 타입이기 때문에, 또 다시 HashMap을 만들 수 있다. )

 

 

 

 

6. HashMap을 이해하기 위한 예제(4)

: HashMap을 이용해서 데이터 갯수만큼 '#'을 출력하는 예제이다.

 

 

'자바 > 컬렉션 프레임워크' 카테고리의 다른 글

(12) Properties  (0) 2022.02.03
(11) - TreeMap  (0) 2022.02.03
(9) TreeSet  (0) 2022.01.18
(8) HashSet  (0) 2022.01.17
(7) Comparator와 Comparable  (0) 2022.01.17
'자바/컬렉션 프레임워크' 카테고리의 다른 글
  • (12) Properties
  • (11) - TreeMap
  • (9) TreeSet
  • (8) HashSet
백_곰
백_곰
  • 백_곰
    친절한 코딩
    백_곰
  • 전체
    오늘
    어제
    • 분류 전체보기
      • 알고리즘 (with JAVA)
        • 기본 알고리즘
        • 완전 탐색
        • 분할 정복 알고리즘
        • 동적 계획법
        • 탐욕법
        • 코딩 테스트 기출 문제
        • 코드트리 조별과제
      • 백준 (with JAVA)
        • 완전 탐색
        • 분할 정복
        • 그 외
      • 자바
        • 개발 환경 구축하기
        • 팁
        • 기본적인 개념
        • 컬렉션 프레임워크
        • 프로세스와 쓰레드
        • 지네릭스
        • 람다식
        • 스트림
        • 입출력 IO
        • 네트워킹
        • 열거형(enums)
        • java.lang 패키지
        • java.time 패키지
        • 유용한 클래스들
        • 형식화 클래스들
      • 안드로이드 with 자바
        • 응용 문제들
        • 자잘한 문제들
        • 오류 보고서
  • 블로그 메뉴

    • 링크

    • 공지사항

    • 인기 글

    • 태그

      코딩트리조별과제
      유용한 클래스
      snail
      소켓 프로그래밍
      ServerSocket
      람다식
      java.lang패키지
      InputStream
      불안정 정렬
      java.time 패키지
      제자리 정렬
      다형성
      코딩테스트
      file
      문자 기반 스트림
      Arrays
      map()
      자바 개념
      안정 정렬
      TCP 소켓 프로그래밍
      안드로이드 스튜디오
      outputstream
      알고스팟
      중간연산
      선택 정렬
      Collections Framework
      역직렬화
      serializable
      코드트리
      스트림
    • 최근 댓글

    • 최근 글

    • hELLO· Designed By정상우.v4.10.3
    백_곰
    (10) HashMap과 Hashtable
    상단으로

    티스토리툴바