Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

im not quite sure how to set my structures. any helps? plz this is what i have t

ID: 3549195 • Letter: I

Question

 im not quite sure how to set my structures.  
 any helps? plz 
 
 this is what i have to do  
 ---------------------------------------------------------------------------------------- 
 
 for this project you are to implement the symbol table that will be used by the assembler during pass 1 and pass 2. It should be constructed as an efficient hashing table. You should construct a "main" routine that will invoke the symbol table operations. The main routine should read a file name off the command line.  So, I will invoke your project with   p1 filename  where filename is any name of my chosing.  p1 is an ASCII linux shell script which contains instructions to run your project. For example, it may look like:  #!/bin/ksh java myprog $1  The file will consist of a character string and an optional number one per line. For example the file might look like:  moss 25 eno fred gorge 18  The actions should follow the following rules.  1) upon seeing        moss 25      hash moss creating a location in an array.      if moss already exists, report an error, for example:          (ERROR moss already exists at location 8)      if moss does not exist, store the name and its number          when moss is stored print a lines such as:  stored moss 25 at location 8 (where 8 is the array index where moss is stored reporting collisons, if necessary)                                     2) upon seeing eno      hash eno to find the location in the array where eno may            or may not exist.      if eno does not exist, report an error           (ERROR eno not found)      if eno does exist, report the location in the array and its number.           (eno found at location 12 with value 433)  Clearly, the 12 and 433 are numbers created for this example. 433 would have been the number associated with eno when it was stored, like 25 was the number associated with moss, in the above example.  You will have one printed line for each input line in the file. You must be able to handle collisions. You must write a hashing function, you may not use one built in the language.  You should include appropriate documentation associated with your project in a file called "text" containing name, purpose of project, external files for input and output, and general description of how the problem is solved. You should use a makefile to compile and link your program even if you code in java  or other languages. Create good modular code.   None of this program should be interactive; no menus, prompts or other action requested by your program should be employed.  I will enter make to compile your project that should create an executables called p1. The makefile might appear as:  p1.class: fn.java         javac fn.java   I will invoke your program with    p1 fn  where fn is any name of a file containing the data as described above.

Explanation / Answer

Hashtable was part of the original java.util and is a concrete implementation of a Dictionary.


However, Java 2 re-engineered Hashtable so that it also implements the Map interface. Thus, Hashtable is now integrated into the collections framework. It is similar to HashMap, but is synchronized.


Like HashMap, Hashtable stores key/value pairs in a hash table. When using a Hashtable, you specify an object that is used as a key, and the value that you want linked to that key. The key is then hashed, and the resulting hash code is used as the index at which the value is stored within the table.


The Hashtable defines four constructors. The first version is the default constructor:


Hashtable( )

The second version creates a hash table that has an initial size specified by size:


Hashtable(int size)

The third version creates a hash table that has an initial size specified by size and a fill ratio specified by fillRatio.


This ratio must be between 0.0 and 1.0, and it determines how full the hash table can be before it is resized upward.


Hashtable(int size, float fillRatio)

The fourth version creates a hash table that is initialized with the elements in m.


The capacity of the hash table is set to twice the number of elements in m. The default load factor of 0.75 is used.


Hashtable(Map m)

Apart from the methods defined by Map interface, Hashtable defines the following methods:


SN Methods with Description

1 void clear( )

Resets and empties the hash table.

2 Object clone( )

Returns a duplicate of the invoking object.

3 boolean contains(Object value)

Returns true if some value equal to value exists within the hash table. Returns false if the value isn't found.

4 boolean containsKey(Object key)

Returns true if some key equal to key exists within the hash table. Returns false if the key isn't found.

5 boolean containsValue(Object value)

Returns true if some value equal to value exists within the hash table. Returns false if the value isn't found.

6 Enumeration elements( )

Returns an enumeration of the values contained in the hash table.

7 Object get(Object key)

Returns the object that contains the value associated with key. If key is not in the hash table, a null object is returned.

8 boolean isEmpty( )

Returns true if the hash table is empty; returns false if it contains at least one key.

9 Enumeration keys( )

Returns an enumeration of the keys contained in the hash table.

10 Object put(Object key, Object value)

Inserts a key and a value into the hash table. Returns null if key isn't already in the hash table; returns the previous value associated with key if key is already in the hash table.

11 void rehash( )

Increases the size of the hash table and rehashes all of its keys.

12 Object remove(Object key)

Removes key and its value. Returns the value associated with key. If key is not in the hash table, a null object is returned.

13 int size( )

Returns the number of entries in the hash table.

14 String toString( )

Returns the string equivalent of a hash table.

Example:


import java.util.*;


public class HashTableDemo {


public static void main(String args[]) {

// Create a hash map

Hashtable balance = new Hashtable();

Enumeration names;

String str;

double bal;


balance.put("Zara", new Double(3434.34));

balance.put("Mahnaz", new Double(123.22));

balance.put("Ayan", new Double(1378.00));

balance.put("Daisy", new Double(99.22));

balance.put("Qadir", new Double(-19.08));


// Show all balances in hash table.

names = balance.keys();

while(names.hasMoreElements()) {

str = (String) names.nextElement();

System.out.println(str + ": " +

balance.get(str));

}

System.out.println();

// Deposit 1,000 into Zara's account

bal = ((Double)balance.get("Zara")).doubleValue();

balance.put("Zara", new Double(bal+1000));

System.out.println("Zara's new balance: " +

balance.get("Zara"));

}

}