HashMap/Hashtable

Shaun·2021년 8월 11일
1

JAVA

목록 보기
11/30

HashMap/Hashtable

  • HashMap/Hashtable 의 관계는 vector 와 ArrayList와 같아서 Hashtable이 HashMap 의 구버전이라 생각하면 된다.

HashMap

  • Map 은 키(key) 와 값(valuse)를 묶어서 데이터(Entry)로 저장한다.

  • HashMap은 키와 값을 각각 Object 타입으로 저장한다.

  • 는 중복허용 x , 은 중복 허용 o

  • HashMap은 Entry라는 내부 클래스를 정의한다. 키와 값은 별개의 값이 아니라 서로 관련된 값이기 떄문에 하나의 클래스로 정의해서 하나의 배열로 다루는 것이 데이터의 무결성적인 측면에서 더 바람직하기 떄문이다.

HashMap 메서드

HashMap 연습

1

  • hashMap을 이용해 로그인을 한번 만들어 봤다.

  • scanner로 입력값을 받아 map에 들어있는 값과 비교를 한다.

  • 만약 이렇게 저장을 했다면 (myid,1234) (asdf,3211) 가 출력 될것이다.
  • 키는 중복을 허용 x , 값은 중복허용 이기 때문에 값은 값(value)는 기존의 값을 덮어 씌운다.

2

  • 값을 넣고 entrySet()을 이용해 키와 값을 함께 읽을수도 있고 keySet() 이나 vales()를 이용해서 따로따로 읽어 올수 있다.

3

  • hashMap안 value값에 또다른 hashMap을 넣은 재미난 문제다.
  • 주석을 한줄한줄 다 달아 놨으므로 자세한 설명은 생략 한다.

해싱과 해시함수

해싱이란 해시함수를 이용해서 데이터를 해시테이블에 저장하고 검색하는 기법을 말한다. 해시함수는 데이터가 저장되어 있는 곳을 알려주기 떄문에 빠르게 찾을수있다.

해싱을 구현한 컬력센 클래스로는 hashMap/hashSet등이 있다.

TreeMap

말 그대로 이진검색트리의 형태로 키와 값의 쌍으로 이루어진 데이터를 저장한다. 그래서 검색 과 정렬에 적합한 컬렉션 클래스이다.

  • 첫번쨰 사진은 TreeMap(자동정렬) -> set ->iterator로 출력
  • 두번쨰 사진은 첫번쨰와 같은데이터를 기본정렬말고 정렬기준을 따로 만들어서 사용했다.TreeMap ->set -> ArrayList -> Collections sort(List list ,comparator c)

※ collections sort() 를 사용하기위해 List에 넣었다.

  • 마지막 사진은 정렬 기준이다
profile
호주쉐프에서 개발자까지..

0개의 댓글