java.util.Hashtable

2016. 2. 8. 21:53·IT기술 관련/모바일
반응형

출처: http://egloos.zum.com/penta82/v/4099869

 

 

 

JCF(Java Collection Framework)에서 많이 사용되었던 Hashtable에 대해서 살펴보자.

Hashtable은 JDK 1.2이전부터 존재해 왔던 클래스이다. 많은 사람들이 의문인 것은 왜 HashTable이 아니냐는 것인데 여기서는 그냥 넘어가자. 클래스명이야 소스 개발자의 몫이니까.

Hashtable의 중요 메소드를 살펴보면,

  • void clear()
    • 모든 키와 값을 제거한다.
  • boolean contains(Object value), containsValue(Object value)
    • 주어진 객체에 대응하는 키 값이 있는지 알려준다.
  • boolean containsKey(Object key)
    • 주어진 키 값이 있는지 알려준다.
  • Enumeration keys()
    • 해시 테이블의 키 값들을 돌려준다.
  • Enumeration elements()
    • 해시 테이블에 저장된 객체들을 돌려준다.
  • Object get(Object key)
    • 주어진 키에 대응하는 값을 돌려준다.
  • Object put(Object key, Object value)
    • 키와 대응하는 값을 저장한다.
  • Object remove(Object key)
    • 키의 대응 관계(Mapping)을 제거한다.
  • int size()
    • 해시 테이블의 대응 관계(Mapping)의 개수를 돌려준다.

여기서 'Enumeration이 무엇인가?' 하는 궁금증이 있을 것이다. Enumeration은 단순히 객체들의 목록을 가지고 있는 구조체라고 생각하면 된다. Enumeration클래스의 메소드를 보면

  • boolean hasMoreElements()
    • 더 이상의 요소가 있는지 알려준다.
  • nextElements()
    • 다음 요소를 돌려준다. 만약 없다면, NoSuchElementException 예외를 발생한다.

따라서 위의 두 메소드를 사용하면 for문, while문을 이용하지 않고도 key값과 element값에 접근할 수 있다.

이제 관련 소스를 살펴보자.

public class HashtableExam2 {
   
    public static void main(String[] args) {
        Hashtable htable = new Hashtable(10);
       
        // put(Object key, Object value)메소드
        htable.put("java", "프로그래밍 언어");
        htable.put("bible", "성서, 성경, 성전");
        htable.put("star", "별, 항성");
        htable.put("moon", "달");
       
        // contains(Object value);
        if(htable.contains("프로그래밍 언어")) {
            System.out.println("value : \"프로그래밍 언어\" 존재");
        }else{
            System.out.println("value : \"프로그래밍 언어\" 존재하지 않음");
        }   
       
        if(htable.contains("음악")) {
            System.out.println("value : \"음악\" 존재");
        }else{
            System.out.println("value : \"음악\" 존재하지 않음");
        }
       
        // containsValue(Object value)
        if(htable.containsValue("프로그래밍 언어")) {
            System.out.println("value : \"프로그래밍 언어\" 존재");
        }else{
            System.out.println("value : \"프로그래밍 언어\" 존재하지 않음");
        }
       
        if(htable.containsValue("음악")) {
            System.out.println("value : \"음악\" 존재");
        }else{
            System.out.println("value : \"음악\" 존재하지 않음");
        }
       
        // containsKey(Object key)
        if(htable.containsKey("java")) {
            System.out.println("key : \"java\" 존재");
        }else{
            System.out.println("key : \"java\" 존재하지 않음");
        }
       
        if(htable.containsValue("ruby")) {
            System.out.println("key : \"ruby\" 존재");
        }else{
            System.out.println("key : \"ruby\" 존재하지 않음");
        }
       
        // get(Object key)
        String value = (String)htable.get("java");
        System.out.println("java(key) : " + value + "(value)");
       
        // remove(Object key)
        htable.remove("star");
       
        // Enumeration 사용
        Enumeration e = htable.keys();
        String key, val;
        while(e.hasMoreElements()) {
            key = (String)e.nextElement();
            val = (String)htable.get(key);
            System.out.println("[" + key + "] " + val);
        }
       
        // clear()
        htable.clear();
       
        // size()
        System.out.println("htable의 size : " + htable.size());
    }

}

 

반응형
저작자표시 (새창열림)

'IT기술 관련 > 모바일' 카테고리의 다른 글

adb 의 android 장치 연결 상태.(no permissions / unauthorized) - ubuntu  (0) 2016.02.12
안드로이드 BEST 해킹 앱  (0) 2016.02.11
[Android] 안드로이드/Android Cursor를 이용한 DB 데이터 사용 하기 ~ !  (1) 2016.01.25
[Android] 배경화면, 버튼이미지 변경 (LinearLayout)  (0) 2016.01.03
[Android] Dialog Inflate  (0) 2016.01.02
'IT기술 관련/모바일' 카테고리의 다른 글
  • adb 의 android 장치 연결 상태.(no permissions / unauthorized) - ubuntu
  • 안드로이드 BEST 해킹 앱
  • [Android] 안드로이드/Android Cursor를 이용한 DB 데이터 사용 하기 ~ !
  • [Android] 배경화면, 버튼이미지 변경 (LinearLayout)
호레
호레
창업 / IT / 육아 / 일상 / 여행
    반응형
  • 호레
    Unique Life
    호레
  • 전체
    오늘
    어제
    • 분류 전체보기
      • 법률
        • 기본
        • 개인정보보호법
        • 정보통신망법
        • 전자금융거래법
        • 전자금융감독규정
        • 신용정보법
        • 온라인투자연계금융업법
      • 창업
        • 외식업 관련
        • 임대업 관련
        • 유통업 관련
        • 세무 관련
        • 마케팅 관련
        • 기타 지식
        • 트렌드
        • Youtube
      • IT기술 관련
        • 모바일
        • 윈도우
        • 리눅스
        • MAC OS
        • 네트워크
        • 빅데이터 관련
        • A.I 인공지능
        • 파이썬_루비 등 언어
        • 쿠버네티스
        • 기타 기술
      • 퍼블릭 클라우드 관련
        • Azure
        • GCP
        • AWS
      • 정보보안 관련
        • QRadar
        • Splunk
        • System
        • Web
      • 기타
        • 세상 모든 정보
        • 서적
      • 게임 관련
        • 유니티
      • 부동산
      • 맛집 찾기
        • 강남역
        • 양재역
        • 판교역
        • ★★★★★
        • ★★★★
        • ★★★
        • ★★
        • ★
      • 결혼_육아 생활
        • 리얼후기
        • 일상
        • 육아
        • 사랑
        • Food
      • 영어
        • 스피킹
        • 문법
        • 팝송
        • 영화
      • K-컨텐츠
        • 드라마
        • 영화
        • 예능
      • 독서
      • 프로젝트 관련 조사
        • 시스템 구축
        • 로그 관련
        • 웹
        • APT
        • 모의 해킹
        • DB
        • 허니팟
        • 수리카타
        • 알고리즘
        • FDS
      • 기업별 구내 식당 평가
        • 한국관광공사
        • KT telecop
        • KT M&S
        • KT powertel
        • KT cs 연수원
        • 진에어
      • 대학 생활
        • 위드윈연구소
        • 진로 고민
        • 채용정보
        • 자동차
        • 주식
        • 악성코드
        • 게임 보안
      • 쉐어하우스
  • 블로그 메뉴

    • 홈
    • 게임 관련
    • IT 기술 관련
    • 태그
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    무역전쟁
    돈까스
    이재곧죽습니다
    수제버거존맛
    맛집
    복리후생
    AWS
    판교역
    대통령
    보안가이드
    판교
    수제버거맛집
    판교맛집
    마케팅
    유니티
    런치
    상호관세
    점심
    수제버거
    쥬쥬랜드
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
호레
java.util.Hashtable

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.