如何在Java中使用Enumeration显示Hashtable的元素?


Hashtable是Java中一个强大的数据结构,允许程序员以键值对的形式存储和组织数据。许多应用程序需要从Hashtable中检索和显示条目。

在Hashtable中,任何非空对象都可以作为键或值。但是,为了成功地从Hashtable中存储和检索项目,用作键的对象必须同时实现equals()方法和hashCode()方法。这些实现确保正确处理键比较和哈希,从而能够有效地管理和检索Hashtable中的数据。

通过使用Hashtable中的keys()和elements()方法,我们可以访问包含键和值的Enumeration对象。

通过使用诸如hasMoreElements()和nextElement()之类的枚举方法,我们可以有效地检索与Hashtable链接的所有键和值,并将它们作为枚举对象获取。这种方法允许无缝遍历和提取Hashtable中的数据。

使用Enumeration的优点

  • 效率:在使用Hashtable等旧版集合类时,枚举效率高且轻量级,因为它不依赖于迭代器。

  • 线程安全:与Iterator不同,Enumeration是一个只读接口,这使得它成为线程安全的,并且是多线程情况下的好选择。

现在让我们来看几个关于如何使用Enumeration从Hashtable获取元素的例子

示例1

import java.io.*;
import java.util.Enumeration;
import java.util.Hashtable;


public class App {
   public static void main(String[] args)
   {
      // we will firstly create a empty hashtable
      Hashtable<Integer, String> empInfo
         = new Hashtable<Integer, String>();

      // now we will insert employees data into the hashtable
      //where empId would be acting as key and name will be the value
      empInfo.put(87, "Hari");
      empInfo.put(84, "Vamsi");
      empInfo.put(72, "Rohith");

      // now let's create enumeration object
      //to get the elements which means employee names
      Enumeration<String> empNames = empInfo.elements();

      System.out.println("Employee Names");
      System.out.println("==============");
      // now we will print all the employee names using hasMoreElements() method
      while (empNames.hasMoreElements()) {
         System.out.println(empNames.nextElement());
      }
   }
}

输出

Employee Names
==============
Hari
Vamsi
Rohith

在之前的例子中,我们只显示了员工的姓名,现在我们将显示员工的ID和姓名。

示例2

import java.io.*;
import java.util.Enumeration;
import java.util.Hashtable;


public class App {
   public static void main(String[] args)
   {
      // we will firstly create a empty hashtable
      Hashtable<Integer, String> empInfo
         = new Hashtable<Integer, String>();

      // now we will insert employees data into the hashtable
      //where empId would be acting as key and name will be the value
      empInfo.put(87, "Hari");
      empInfo.put(84, "Vamsi");
      empInfo.put(72, "Rohith");

      // now let's create enumeration objects
      // to store the keys
      
      Enumeration<Integer> empIDs = empInfo.keys();

      System.out.println("EmpId" + "  \t"+ "EmpName");
      System.out.println("================");
      // now we will print all the employee details
      // where key is empId and with the help of get() we will get corresponding
      // value which will be empName
      while (empIDs.hasMoreElements()) {
         int key = empIDs.nextElement();
         System.out.println( " "+ key + "  \t" + empInfo.get(key));
      }
   }
}

输出

EmpId   EmpName
================
 87    Hari
 84    Vamsi
 72    Rohith

结论

在本文中,我们讨论了Hashtable和Enumeration的概念及其优点,并且我们还看到了如何使用Enumeration从Hashtable中获取元素以及一些示例。

更新于:2023年8月3日

363 次浏览

启动你的职业生涯

通过完成课程获得认证

开始学习
广告