본문 바로가기
[개발] 언어/Java

Map - Hashtable 사용하는 방법

by Devsong26 2017. 11. 9.

1. Hashtable이란?

Map 인터페이스를 구현한 클래스입니다. 

 

 

2. 특징

1) (key,value)쌍으로 데이터를 입력합니다. 

2) key, value의 값은 null이 될 수 없습니다. 

3) Hashtable 객체는 initial capacity와 load factor 매개변수를 갖게 됩니다. 

initial capacity는 생성 초기에 Entry를 저장할 bucket의 수를 의미합니다. 

load factor는 Hashtable의 꽉찬 정도를 측정하여 load factor값 만큼 entry가 찼다면 capacity를 자동으로 증가시킵니다.

4) 동기화 처리가 됩니다. 

5) Iterator 객체를 keySet().iterator() 메소드로 가져온 후 Hashtable 객체를 구조적으로 수정을 한다면 ConcurrentModificationException예외가 발생합니다.

 

 

3. 생성자

 

//첫번째 생성자
Hashtable<String, Integer> hs1 = new Hashtable<String, Integer>();

//두번째 생성자
Hashtable<String, Integer> hs2 = new Hashtable<String, Integer>(10);

//세번째 생성자
Hashtable<String, Integer> hs3 = new Hashtable<String, Integer>(10, 0.5f);

//네번째 생성자
Hashtable<String, Integer> hs4 = new Hashtable<String, Integer>(hs1);

 

첫번째 생성자는 기본 생성자로써 default initial capacity(11), load factor(0.75)를 가진 빈 객체를 생성합니다.

두번째 생성자는 매개변수로 입력된 initialCapacity값을 가지며 load factor(0.75)값을 가진 빈 객체를 생성합니다.

세번째 생성자는 매개변수로 입력된 initialCapacity, load factor값을 가진 빈 객체를 생성합니다.

네번째 생성자는 매개변수로 Collection을 구현한 클래스의 객체를 입력하며, 입력된 객체와 동일한 mappings을 가집니다. 

 

 

4. 메소드

모든 메소드를 설명하지 않습니다.

 

1) clear()    반환형: void

Hashtable 객체의 모든 mappings를 삭제합니다.

 

2) clone()    반환형: Object

Hashtable 객체의 복사본을 생성합니다. 생성된 복사본은 원본과 참조주소가 다릅니다.

 

3) contains(Object value)    반환형: boolean

입력된 value값이 Hashtable 객체에 존재한다면 true, 아니면 false를 반환합니다. 

 

4) containsKey(Object key)    반환형: boolean

입력된 key값이 Hashtable 객체에 존재한다면 true, 아니면 false를 반환합니다.

 

5) containsValue(Object value)    반환형: boolean

입력된 value값과 mapping된 key값이 한개 이상 존재할 경우 true, 아니면 false를 반환합니다. 

 

6) elements()    반환형:Enumeration<V>

Hashtable 객체에 존재하는 모든 value값을 담은 Enumeration<V>객체를 반환합니다. 

 

7) entrySet()    반환형: Set<Map.Entry<K,V>>

http://developer-syubrofo.tistory.com/7를 참고하세요.

 

8) equals(Object o)    반환형: boolean

입력되는 o와 Hashtable객체가 완벽하게 동일한 mappings를 가진 경우 true를 반환하고, 아닐 경우 false를 반환합니다. 

 

9) get(Object key)    반환형: value

Hashtable객체에 입력되는 key값과 mapping된 value값이 있을 경우 그값을 반환하고, 없을 경우 null을 반환합니다.

 

10) getOrDefault(Object key, V defaultValue)    반환형: V

Hashtable 객체에 입력되는 key값과 mapping된 value값이 존재하면 그 값을 반환하고 없을 경우 입력된 defaultValue값을 반환합니다. 

 

11) hashCode()    반환형: int

Map 인터페이스 정의에 따른 Map객체의 hashcode value를 반환합니다. 

 

12) isEmpty()    반환형: boolean 

Hashtable 객체가 빈 객체일 경우 true를 반환하고 아닐 경우 false를 반환합니다. 

 

13) keySet()    반환형:Set<K>

Hashtable객체가 가지고 있는 모든 key값을 담은 Set<K>객체를 반환합니다.

 

14) put(K key, V value)    반환형: V

Hashtable객체에 입력된 key,value 쌍을 연관시킵니다. 그리고 입력된 value 이전의 값을 반환합니다. 

만일 입력되는 key값이 이미 존재할 경우 value값을 입력되는 value값으로 수정하고 이전 값을 반환합니다.

key값이 존재하지 않았을 경우 입력되는 value값을 반환합니다.

 

15) putAll(Map<? extends K, ? extends V> t)    반환형: void

입력되는 Map 인터페이스를 구현한 클래스의 객체가 가지고 있는 모든 mappings을 복사하여 Hashtable 객체에 연관시킵니다. 

기존의 key값이 존재할 경우 value값만 변경됩니다.

 

16) remove(Object key)    반환형: V

Hashtable 객체 안에 입력되는 key과 mapping되는 value값이 존재할 경우 그 key값을 삭제하고 value값을 반환합니다.

없을 경우 null을 반환합니다. 

 

17) replace(K key, V value)    반환형: V

Hashtable 객체 안에 입력되는 key값에 상응하는 value값이 존재할 경우 그 값을 입력되는 value값으로 변경하고 이전 값을 반환합니다.

없을 경우 null을 반환합니다.

 

18) size()    반환형: int

Hashtable 객체가 가지고 있는 모든 key의 개수를 반환합니다. 

 

 

 


더 많은 내용을 보시려면 아래를 참고하세요.


블로그의 다른 글

 

Set - HashSet 사용하는 방법

- HashSet이란? Set인터페이스를 구현한 hash table입니다. - 특징 (1) 입력된 순서로 저장되지 않습니다. (2) element의 중복을 허용하지 않습니다. (3) null element를 허용합니다. (4) 동기화처리가 되지 않습.

developer-syubrofo.tistory.com

 

Set - LinkedHashSet 사용하는 방법

1. LinkedHashSet이란? Set인터페이스를 구현하고 Hash Set클래스를 상속받은 Linked List입니다. 2. 특징 - iteration 작업을 할 경우, Set에 삽입된 순서대로 접근합니다. - 데이터 중복을 허용하지 않으며, 중

developer-syubrofo.tistory.com

 

List - LinkedList 사용하는 방법

1. LinkedList란? Deque, List인터페이스를 구현한 Doubly-Linked list입니다. 2. 특징 - 노드들로 이루어져있으며, 각 Node는 [데이터 | 다음 노드의 주소값]을 갖습니다. - 리스트의 원소에 접근하는 것은 Node..

developer-syubrofo.tistory.com

 

lang package - String 사용하는 방법

1. String이란? 문자열을 나타내는 클래스입니다. 2. 특징 - Java에서 사용되는 모든 String literal은 모두 String으로 구현된 객체입니다. - String 객체를 생성 후에 객체의 문자열을 변경할 수 없습니다.

developer-syubrofo.tistory.com

 

java - Generics & Wildcard

1. Generics란? - 자바 컬렉션 프레임워크는 자료구조로써 여러 타입의 객체를 저장할 수 있다. 컬렉션은 여러 타입의 객체를 저장하기 위해 기본적으로 입력 타입을 최상위 부모 클래스인 Object 

developer-syubrofo.tistory.com