Java Hashtable( 해시 테이블 ) 예제, 간단한 값 넣었다 빼기
데이터를 테이블 형식으로 구성하고자 할 때, 데이터베이스를 많이 사용합니다. 하지만 일반적인 데이터베이스는 대용량의 데이터를 처리하기 용이하게 구성해 디스크로 써 놓은 형태이기 때문에 속도가 느린편입니다. ( Disk I/O 비용이 얼마나 큰지 개발자 분들은 아실꺼라고 믿습니다. )
그래서 컴퓨팅 과정에서 잠깐 저장해 놓는 식으로 데이터를 이용할 때, 혹은 용량은 크지 않지만 자주 변경되는 데이터를 처리할 때 데이터베이스를 이용하게 되면 약간 부담이 생깁니다.
이럴 때 사용하는 것이 해시 테이블입니다. 해시테이블을 선언하고 간단한 값들을 해시 테이블에 집어 넣었다가 빼는 예제를 설명드리겠습니다.
▶ 해시 테이블( Hashtable ) 예제 - 선언하기
해시 테이블은 키와 값을 쌍으로 이루어진 구조를 띄고 있습니다.
이런식으로 Key 값이 있고, 그에 해당하는 Value 가 있는 쌍의 형태로 존재합니다. 이 때, Key 값은 기본적으로 중복이 불가능합니다. 같은 키에 두번 값을 입력하면 나중에 입력한 값이 할당됩니다.
따라서 해시테이블을 선언할 때도 <Key, Value> 의 쌍을 명시해주어야 합니다.
Hashtable<String, Integer> ht = new Hashtable<String, Integer>();
해시 테이블을 사용하기 위해서는 java.util.* 을 import 해줘야 합니다.
그리고 int 형의 Value 값을 사용하기 위해서는 int 라고 쓰지 말고, Integer 라고 써야합니다. 마찬가지로 Double 형도 대문자로 시작하는 Double 을 써야 합니다.
▶ 해시 테이블( Hashtasble ) 예제 - 값 넣기, 빼기
이제 위에서 선언한 해시테이블에 키-값의 쌍을 입력하는 방법을 알아보도록 하겠습니다.
// 해시 테이블에 값 넣기
ht.put("a", 1);
ht.put("b", 1);
ht.put("c", 1);
ht.put("a", 1);
ht.put("b", 1);
ht.put("c", 1);
Hashtable의 메소드에는 put 메소드가 있습니다. put 메소드를 이용해서 해시 테이블에 키-값 쌍을 집어 넣을 수 있습니다. 이 때, 키 값이 중복될 경우 나중에 입력한 값이 덮어쓰기 됩니다.
// 해시 테이블에서 값 얻어오기
ht.get("a");
ht.get("b");
ht.get("c");
ht.get("a");
ht.get("b");
ht.get("c");
해시 테이블에서 값을 얻어 올 때는 Hashtable 클래스가 제공하는 get 메소드를 이용합니다. get 메소드를 이용하면 키 값을 얻어서 Value를 리턴합니다.
▶ 해시 테이블( Hashtable )을 이용한 예제
import java.util.Enumeration;
import java.util.Hashtable;
public class testHashtable
{
public static void main(String args[])
{
Hashtable<String, Integer> ht = new Hashtable<String, Integer>();
// 해시 테이블에 키와 값 집어 넣기
ht.put("abc", 1);
ht.put("abc1", 2);
ht.put("abc2", 3);
// 해시 테이블에 있는 값 꺼내오기
Enumeration en = ht.keys();
while(en.hasMoreElements())
{
String key = en.nextElement().toString();
System.out.println(key + " : "+ht.get(key));
}
}
}
import java.util.Hashtable;
public class testHashtable
{
public static void main(String args[])
{
Hashtable<String, Integer> ht = new Hashtable<String, Integer>();
// 해시 테이블에 키와 값 집어 넣기
ht.put("abc", 1);
ht.put("abc1", 2);
ht.put("abc2", 3);
// 해시 테이블에 있는 값 꺼내오기
Enumeration en = ht.keys();
while(en.hasMoreElements())
{
String key = en.nextElement().toString();
System.out.println(key + " : "+ht.get(key));
}
}
}
여기서 사용한 Enumeration 클래스를 이용해서 해시 테이블에 들어있는 모든 키 값의 리스트를 얻어 올 수 있습니다. Enumeration 클래스를 이용해서 해시테이블에 들어있는 모든 키와 값을 확인하는 Java 코드입니다.
출력화면은 다음과 같습니다.
해시 테이블은 메모리상에 존재하기 때문에 I/O 속도가 굉장히 빠릅니다. 따라서 간단한 작업이라면 DB에 넣지 말고 해시테이블에서 작업을 하는것도 좋은 방법으로 보입니다. ( 뭐 응용하기에 따라 다르겠지요. )