3

I implemented a hash table and I want to display the contents, but I do not know how to do this.

Here is my driver class:

package myHashTable;

import java.util.InputMismatchException;
import java.util.Scanner;

public class MyHashDrivergood{

private static String fileName  = "";
private static int choice   =   0;
private int initialCapacity =   0;
private static String[] testData = null;

public static void main(String[] args){

    Scanner keyboard = new Scanner(System.in);

    MyHashTableTable<String, String> dataTested = new MyHashTableTable<String,String>
                                            ()>;

while( choice != 999 ){

  try {
    System.out.println("Please enter your choice to use the HashTable: (999:
                               End of program) ");
    System.out.println("Read the files, store data in an array,  and display
                               the content: 1 ");
    System.out.println("Read the files and store the data in the HashTable, and 
                               dislay the content of the hashtable: 2");

    choice = keyboard.nextInt();
    keyboard.nextLine();
   } catch (InputMismatchException e) {
    System.out.println("Please enter only numbers!");
    keyboard.nextLine();
    continue;
   }

    switch(choice){

    case 1:
        System.out.print( "Please enter the file name to test:" );
        fileName = keyboard.next();

        testData = new String[MyHashTablegood.getFileSize( fileName )];
        testData = MyHashTablegood.getData( fileName,   
                                MyHashTablegood.getFileSize( fileName ));

        for( int j = 0;j < testData.length; j++ ){
            System.out.println( j + "  " + testData[j] );
        }

        break;

        case 2:
        System.out.print( "Please enter the file name to test:" );
        fileName = keyboard.next();

                //here I read the data from a file

        testData = new String[MyHashTablegood.getFileSize( fileName )];
        testData = MyHashTablegood.getData( fileName,  
                            MyHashTablegood.getFileSize( fileName ));

                    //now I am storing the data in my hash table
        for(int k =0; k < testData.length; k++){
            String data = testData[k];

            dataTested.put(data, data);

        }

        break;

        }
    }

    keyboard.close();

    System.out.println("The program has ended.");

}
}

It is the first time that I work with hash tables and I am not sure of what I am doing.

1
  • Please show your implementation of MyHashTableTable. Commented Nov 21, 2013 at 7:44

2 Answers 2

6

Sorry answered this too quickly when I got to work. I thought you were using a HashMap. Well in case you want to learn how to iterate a hash map.. here you go

Well, one way is to iterate through your map and print out the values

for (Map.Entry<String, String> entry : yourMap.entrySet()) {
    String key = entry.getKey();
    String value = entry.getValue();

    System.out.println ("Key: " + key + " Value: " + value);
}
Sign up to request clarification or add additional context in comments.

1 Comment

Thanks for the hash map hint. I am really stuck with the hash table problem.
2

Can you just use it's toString representation? From the Oracle docs of HashTable:

String toString()

Returns a string representation of this Hashtable object in the form of a set of entries, enclosed in braces and separated by the ASCII characters ", " (comma and space).

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.