Java Dictionary Creation, Usage, Examples


Dictionary is an abstract class in java api which used in collections such as Hashtable. Dictionary supports backend to store the values as...

Dictionary is an abstract class in java api which used in collections such as Hashtable. Dictionary supports backend to store the values as key, value pair. Key and Values are should be objects.

In Dictionary, Every key value must be having a value that can be null or non-null object and keys are not stored in the insertion order. This does not allow duplicate keys.

Since dictionary is an abstract class so, we can not create an object for it. Hence, object creation is possible to only its implementation classes. As a rule, the equals method should be used by implementations of this class to decide if two keys are the same.

Java Dictionary Creation, Usage, Examples

More on Abstract class in Java.

Class declaration:

public abstract class Dictionary<K,V> extends Object 


Dictionary() --> Sole constructor.


abstract Enumeration<V> elements(): Returns an enumeration of the values in this dictionary.
abstract V     get(Object key) : Returns the value to which the key is mapped in this dictionary.
abstract boolean isEmpty() : Tests if this dictionary maps no keys to value.
abstract Enumeration<K> keys() : Returns an enumeration of the keys in this dictionary.
abstract V     put(K key, V value) : Maps the specified key to the specified value in this dictionary.
abstract V     remove(Object key) : Removes the key (and its corresponding value) from this dictionary.
abstract int size() : Returns the number of entries (distinct keys) in this dictionary.

How do you create an Dictionary in Java?

Creating Dictionary object can be done only by its sub class that is Hashtable.

Dictionary Example:

package com.adeepdrive.dictionary;

import java.util.Dictionary;
import java.util.Hashtable;

public class DictonaryExample {
    public static void main(String[] args) {

        Dictionary<Integer, String> dictionary = new Hashtable<>();
        dictionary.put(1, "Number One");
        dictionary.put(2, "Number Two");
        dictionary.put(3, "Number Three");
        System.out.println("dictionary : " + dictionary);


dictionary : {3=Number Three, 2=Number Two, 1=Number One}

Reference is dictionary but object is created for Hashtable which is implementation of it. Observe the order of output and order is not preserved.

How to get the value for the specific key?

If we know the key then by using get(String key) method, we can get the value of a particular key.

System.out.println("Finding the value for key 2");
String value = dictionary.get(2);
System.out.println("Printing value of key 2 is " + value);


Finding the value for key 2
Printing value of key 2 is Number Two

Retrieving all keys from dictionary:

It provides a method called key() method and returns Enumeration of keys.

System.out.println("Getting keys");
Enumeration<Integer> keys = dictionary.keys();
while (keys.hasMoreElements()) {
    System.out.println("Key : " + keys.nextElement());


Getting keys
Key : 3
Key : 2
Key : 1

After getting all key then if we call keys.nextElement() after while loop there are no keys to print. We will get run time exception saying "NoSuchElementException".

Exception in thread "main" java.util.NoSuchElementException: Hashtable Enumerator
    at java.util.Hashtable$Enumerator.nextElement(Unknown Source)
    at com.adeepdrive.dictionary.DictonaryExample.main(DictonaryExample.java:28)

How to get only values from Dictionary:

By calling elements() method, we will get the Enumeration of values.

System.out.println("Getting values");
Enumeration<String> values = dictionary.elements();
while (values.hasMoreElements()) {
    System.out.println("Value : " + values.nextElement());

Getting values
Value : Number Three
Value : Number Two
Value : Number One

How to get the values based on particular condition on keys?

Till now we have retrieved First keys from dictionary, second just only values.
Key     Value
Austria --> EUR
Australia --> AUD
France --> EUR
Just imagine, We do not know what are the keys present in it. But we want to get the values only for countries starts with Aus.

package com.adeepdrive.dictionary;

import java.util.Dictionary;
import java.util.Enumeration;
import java.util.Hashtable;

public class DictonaryIterateExample {
    public static void main(String[] args) {
        Dictionary<String, String> countryCurrency = new Hashtable<>();
        countryCurrency.put("USA", "USD");
        countryCurrency.put("Austria", "EUR");
        countryCurrency.put("Australia", "AUD");
        countryCurrency.put("France", "EUR");

        Enumeration<String> keys = countryCurrency.keys();

        while (keys.hasMoreElements()) {
            String key = keys.nextElement();
            if (key.startsWith("Aus")) {
                String value = countryCurrency.get(key);
               System.out.println("Key : " + key + ", Value : " + value);




Key : Austria, Value : EUR
Key : Australia, Value : AUD

What will happen if we keep same key again in it with different value.

Dictionary does not allow duplicate keys. We will see now how it behaviour.

public class DictonaryDuplicateExample {

    public static void main(String[] args) {

        Dictionary<String, String> employeeAddresses = new Hashtable<>();
        employeeAddresses.put("Robert", "Los Angeles");
        employeeAddresses.put("Julee", "New York");
        // Robert address changing now.
        employeeAddresses.put("Robert", "United Kingdom");
        System.out.println("Employee address : "+employeeAddresses);


Employee address : {Julee=New York, Robert=United Kingdom}

In this example, we have added key Robert two times but second time added new value. It overrides old value with new. Now we will have only one key.



About Us

Author: Venkatesh - I love to learn and share the technical stuff.

accumulo,1,ActiveMQ,2,Adsense,1,API,31,ArrayList,16,Arrays,3,Bean Creation,3,Bean Scopes,1,BiConsumer,1,Blogger Tips,1,Books,1,C Programming,1,Collection,4,Collections,21,Collector,1,Command Line,1,Compile Errors,1,Configurations,7,Constants,1,Control Statements,8,Conversions,5,Core Java,74,Corona India,1,Create,2,CSS,1,Date,2,Date Time API,3,Dictionary,1,Difference,1,Download,1,Eclipse,2,Efficiently,1,Error,1,Errors,1,Exception,1,Exceptions,3,Fast,1,Files,9,Float,1,Font,1,For examples,1,For loop examples,1,For Loop in Java,1,Form,1,Freshers,1,Function,3,Functional Interface,2,Garbage Collector,1,Generics,4,Git,4,Grant,1,Grep,1,HashMap,1,HomeBrew,2,HTML,2,HttpClient,2,Immutable,1,Inner for loops,1,Installation,1,Interview Questions,5,Iterate,2,Jackson API,3,Java,28,Java 10,1,Java 11,5,Java 12,5,Java 13,2,Java 14,2,java 5 For loop,1,Java 8,50,Java 9,1,Java Design Patterns,1,Java Files,1,Java for loop,1,Java Program,2,Java Programs,65,java.lang,5,java.util. function,1,jQuery,1,Kotlin,10,Kotlin Programs,6,Lambda,1,lang,29,Leap Year,1,live updates,1,Mac OS,2,Math,1,Maven,1,Method References,1,Mockito,1,MongoDB,3,Nested for loop,1,Nested for loop examples,1,New Features,1,Operations,1,Optional,4,Oracle,5,Oracle 18C,1,Partition,1,Patterns,1,Programs,1,Property,1,Python,2,Quarkus,1,Read,1,Real Time,1,Recursion,2,Remove,2,Rest API,1,Schedules,1,Serialization,1,Servlet,1,Sorting Techniques,8,Spring,2,Spring Boot,23,Spring Email,1,Spring MVC,1,Stream,3,Streams,12,String,48,String Programs,8,String Revese,1,Swing,1,System,1,Tags,1,Threads,9,Tomcat,1,Tomcat 8,1,Troubleshoot,16,Unix,2,Updates,3,util,5,While Loop,1,
JavaProgramTo.com: Java Dictionary Creation, Usage, Examples
Java Dictionary Creation, Usage, Examples
Loaded All Posts Not found any posts VIEW ALL Readmore Reply Cancel reply Delete By Home PAGES POSTS View All RECOMMENDED FOR YOU LABEL ARCHIVE SEARCH ALL POSTS Not found any post match with your request Back Home Sunday Monday Tuesday Wednesday Thursday Friday Saturday Sun Mon Tue Wed Thu Fri Sat January February March April May June July August September October November December Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec just now 1 minute ago $$1$$ minutes ago 1 hour ago $$1$$ hours ago Yesterday $$1$$ days ago $$1$$ weeks ago more than 5 weeks ago Followers Follow THIS PREMIUM CONTENT IS LOCKED STEP 1: Share to a social network STEP 2: Click the link on your social network Copy All Code Select All Code All codes were copied to your clipboard Can not copy the codes / texts, please press [CTRL]+[C] (or CMD+C with Mac) to copy Table of Content