| | |
    Java Beginner Home
    Table of Contents
    Introduction to Java
    Getting Started with Java
    Basic Language Elements
    Java Operators
    Java Control Statements
    Java Access Modifiers
    Classes and Objects
    Java Constructors
    Object Serialization
    Java Class Inheritance
    Java Object Type Casting
    Abstract class and Interface
    Java Method Overiding
    Java toString Method
    Java String Class
    Java toString Method
    Java String Comparison
    Java StringBuffer
    Java Exceptions
    Singleton Pattern
    Java Threads Tutorial
    Java Collections Framework
    Java Date Util
    Swing Tutorial
    Feedback
    Java books

Java HashTable

  • HashTable is synchronized.
  • Iterator in the HashMap is fail-safe while the enumerator for the Hashtable isn't.
  • Hashtable doesn’t allow nulls



    Below is a HashTable Example showing how collections are manipulated using a HashTable

    Please Note that It must be Compiled in Java 1.4.

    // Demonstrates the Hashtable class of the java.util package.
    
    public class HashTableDemo extends JFrame {
    
    	public HashTableDemo() {
    		super(" Hashtable Sourcecode Example");
    		final JLabel jlbStatus = new JLabel();
    		final Hashtable hashTable = new Hashtable();
    		final JTextArea display = new JTextArea(4, 20);
    		display.setEditable(false);
    		JPanel jplNorth = new JPanel();
    		jplNorth.setLayout(new BorderLayout());
    		JPanel jplNorthSub = new JPanel();
    		jplNorthSub.add(new JLabel("Name (Key)"));
    		final JTextField jtfFirstName = new JTextField(8);
    		jplNorthSub.add(jtfFirstName);
    		jplNorthSub.add(new JLabel("Phone No"));
    		final JTextField jtfPhone = new JTextField(8);
    		jplNorthSub.add(jtfPhone);
    		jplNorth.add(jplNorthSub, BorderLayout.NORTH);
    		jplNorth.add(jlbStatus, BorderLayout.SOUTH);
    		JPanel jplSouth = new JPanel();
    		jplSouth.setLayout(new GridLayout(2, 5));
    		JButton jbnAdd = new JButton("Add");
    		jbnAdd.addActionListener(new ActionListener() {
    
    		public void actionPerformed(ActionEvent e) {
    				String strNum = jtfPhone.getText().trim();
    				String strName = jtfFirstName.getText().trim();
    				if ((strNum != null && strNum.equals(""))
    						|| (strName != null && strName.equals(""))) {
    					JOptionPane.showMessageDialog(HashTableDemo.this,
    							"Please enter both Name and Phone No");
    					return;
    				}
    				int num = 0;
    				try {
    					num = Integer.parseInt(strNum);
    				} catch (NumberFormatException ne) {
    					ne.printStackTrace();
    				}
    				EmployeeDetails emp = new EmployeeDetails(strName, num);
    				Object val = hashTable.put(strName, emp);
    				if (val == null)
    					jlbStatus.setText("Added: " + emp.toString());
    				else
    					jlbStatus.setText("Added: " + emp.toString()
    							+ "; Replaced: " + val.toString());
    			}
    		});
    		jplSouth.add(jbnAdd);
    		JButton jbnGet = new JButton("Get");
    		jbnGet.addActionListener(new ActionListener() {
    
    		public void actionPerformed(ActionEvent e) {
    				Object val = hashTable.get(jtfFirstName.getText().trim());
    				if (val != null)
    					jlbStatus.setText("Get: " + val.toString());
    				else
    					jlbStatus.setText("Get: " + jtfFirstName.getText()+ 
    										" not in table");
    			}
    		});
    		jplSouth.add(jbnGet);
    		JButton jbnRemove = new JButton("Remove Name");
    		jbnRemove.addActionListener(new ActionListener() {
    
    		public void actionPerformed(ActionEvent e) {
    				Object val = hashTable.remove(jtfFirstName.getText()
    						.trim());
    				if (val != null)
    					jlbStatus.setText("Remove: " + val.toString());
    				else
    					jlbStatus.setText("Remove: " + jtfFirstName.getText()+
    										" not in table");
    			}
    		});
    		jplSouth.add(jbnRemove);
    		JButton jbnIsEmpty = new JButton("Empty ?");
    		jbnIsEmpty.addActionListener(new ActionListener() {
    
    		public void actionPerformed(ActionEvent e) {
    				jlbStatus.setText("Empty: " + hashTable.isEmpty());
    			}
    		});
    		jplSouth.add(jbnIsEmpty);
    		JButton jbnContains = new JButton("Contains key");
    		jbnContains.addActionListener(new ActionListener() {
    
    		public void actionPerformed(ActionEvent e) {
    				jlbStatus.setText("Contains key: "+ 
    					hashTable.containsKey(jtfFirstName.getText().trim()));
    			}
    		});
    		jplSouth.add(jbnContains);
    		JButton jbnClear = new JButton("Clear table");
    		jbnClear.addActionListener(new ActionListener() {
    
    		public void actionPerformed(ActionEvent e) {
    				hashTable.clear();
    				jlbStatus.setText("HashTable Emptied");
    			}
    		});
    		jplSouth.add(jbnClear);
    		JButton jbnDisplay = new JButton("List objects");
    		jbnDisplay.addActionListener(new ActionListener() {
    
    		public void actionPerformed(ActionEvent e) {
    				StringBuffer buf = new StringBuffer();
    				for (Enumeration enum = hashTable.elements();
    									enum.hasMoreElements();)
    					buf.append(enum.nextElement()).append('\n');
    				display.setText(buf.toString());
    			}
    		});
    		jplSouth.add(jbnDisplay);
    		JButton jbnKeys = new JButton("List keys");
    		jbnKeys.addActionListener(new ActionListener() {
    
    		public void actionPerformed(ActionEvent e) {
    				StringBuffer buf = new StringBuffer();
    				for (Enumeration enum = hashTable.keys(); enum.hasMoreElements();)
    					buf.append(enum.nextElement()).append('\n');
    				JOptionPane.showMessageDialog(null, buf.toString(),
    					"Display Keys of HashTable ",JOptionPane.PLAIN_MESSAGE);
    			}
    		});
    		jplSouth.add(jbnKeys);
    		Container c = getContentPane();
    		c.add(jplNorth, BorderLayout.NORTH);
    		c.add(new JScrollPane(display), BorderLayout.CENTER);
    		c.add(jplSouth, BorderLayout.SOUTH);
    		setSize(540, 300);
    		setVisible(true);
    	}
    	
    	public static void main(String args[]) {
    		HashTableDemo hashTableDemo = new HashTableDemo();
    		hashTableDemo.addWindowListener(new WindowAdapter() {
    
    			public void windowClosing(WindowEvent e) {
    				System.exit(0);
    			}
    		});
    	}
    }
    
    class EmployeeDetails {
    
    	private String name;
    	private int phoneNp;
    	public EmployeeDetails(String fName, int phNo) {
    		name = fName;
    		phoneNp = phNo;
    	}
    	public String toString() {
    		return name + " " + phoneNp;
    	}
    }
    
    

    Output

    Download  HashTableDemo.java

     
    Page 7 of 8
    1
    7

     

  •  
        Java is a trademark of Sun Microsystems, Inc.
    | | |
    © Copyright 2007-08 javabeginner.com