Programming/JAVA

HashTable 예제

현무랑 2019. 8. 21. 23:54
반응형

 HashTable 입력과 출력에 대해서 알아보다가 괜찮은 예제가 있어서 남겨둔다.

 

import java.util.Collection;

import java.util.Enumeration;

import java.util.Hashtable;

import java.util.Iterator;

import java.util.Set;

 

public class TestClient {

    public static void main(String[] args)  {

        /*

         * HashTable 간략 정리

         * 1. Key와 Value에 NULL 을 허용하지 않음

         * 2. 동기화 (Synchronized)

         * 3. 중복 허용 안함.

         */

 

        // Hashtable 생성

        Hashtable hashTable =

                new  Hashtable();

 

        hashTable.put("연예인", "김태희");

        hashTable.put("연예인", "송승헌");

        hashTable.put("연예인", "이병헌");

        hashTable.put("연예인", "조인성");

        // 중복이 없습니다.

        System.out.println(hashTable.size());

 

        // 값을 출력합니다.

        Collection values = hashTable.values();

        for (String string : values) {

            // 결과는 조인성 입니다.

            // 마지막에 입력된 값이 조인성 이기 때문에.

            System.out.println(string);

        }

 

        hashTable.put("연예인", "김태희");

        hashTable.put("아이돌", "아이유");

        hashTable.put("영화배우", "이병헌");

        hashTable.put("가수", "김경호");

        /*

         * HashTable 데이터를 출력하는 방법

         * 1. Key값으로 객체를 찾음

         * 2. values 를 사용하여 Collection 형태로 찾음

         */

 

        // 방법 1

        Enumeration keys = hashTable.keys();

        while (keys.hasMoreElements()) {

            // Key 를 찾고 찾은 key로 Value를 찾습니다.

            String key = (String) keys.nextElement();

            System.out.println("Key: "+ key +" value: "+ hashTable.get(key));

        }

 

        // 방법 2

        Collection tableValues = hashTable.values();

        for (String value : tableValues) {

            System.out.println("value: "+ value);

        }

 

        // 방법 3

        Set keySet = hashTable.keySet();

        Iterator iterKey = keySet.iterator();

        while(iterKey.hasNext()) {

            String key = iterKey.next();

            System.out.println("Key: "+ key +" value: "+ hashTable.get(key));

        }

 

        /*

         * 물론 어떻게 사용하느냐에 따라 다르겠지만

         * 1, 3번 방법은

         * Key값에 해당하는 Value를 찾을 때 주로 사용 하고

         *

         * 2.번 방법은

         * value를 나열 할때 주로 사용합니다.

         * 특정 키와 상관 없이 모든 value를 사용할 때 사용합니다.

         *

         */

    }

}

 

반응형