java

java (Map-HashMap,Hashtable, Properties)

소리소리솔소리 2022. 9. 29. 11:42

*Hash

-데이터에 대한 검색과 저장에서 아주 우수한 성능을 보인다.

-Hash로 값을 생성하면 고유 주소 값이 생기는데 이것을 숫자로 변환한 것을 해시코드라고 한다.

-자바에서 해시코드는 Heap 영역에 인스턴스에 대한 참조 값

 

Hash 함수란?

데이터의 효율적인 관리를 위해 임의의 길이를 가진 데이터를 고정된 길이를 가진 테이터로 매핑해주는 함수

 

 

 

Map 컬렉션

-Map은 리스트나 배열처럼 순차적으로(sequential) 해당 요소 값을 구하지 않고 key를 통해 value를 얻는다.

-key로 value를 얻어냄

-순서가 보장 되지 않음-키와 값으로 구성되어 있으며 키는 중복 허용하지 않고 값은 중복 가능

-HashMap, HashTable, Properties

-키의 동일 조건은 hashCode()의 리턴값이 같고, equals()메소드의 결과가 true

 

 

HashMap

-Map 인터페이스를 구현한 대표적인 Map 컬렉션

-haseCode() 리턴값과 equals()리턴값이 같은 경우 같은 키로 간주

 

 

 

예제

 

HashTable

-Hashtable은 HashMap과 동일한 구조

-HashTable도 키로 사용할 객체는 hashCode()와 equals() 메소드를 재정의해서 동등 객체가 될 조건을 정해야 한다.

-동기화된 메소드로 구현되어 있어 멀티 스레드 환경에서 안전

 

Properties

-키와 값을 String 타입으로 제한한 Map 컬렉션

-내부 설정 정보 읽기(database.properties가 생성되어 있지 않으면 에러 발생)

-주로 Properties의 정보를 읽어 들일때 사용