Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

This is my Java code can you help me fix the bugs in HashTable class and add run time by using ( java.time.Duration &java.time.Instant ;

This is my Java code can you help me fix the bugs in HashTable class and add run time by using (java.time.Duration &java.time.Instant; something simliar like this

Instant start = Instant.now(); methodYouWantToTime(); Instant end = Instant.now(); System.out.println(Duration.between(start, end)); 

) to show the run time on both(hashtable & simplelist) output ( the file is .txt file without punctuation, so you can test any file you want)

and do not change anything in Entry & SimpleList class

--------------------------------------------------------------------------------

public class Entry {

//The word to store in the Entry, this will be a key value for your hash table. private String word;

//The count of how many times the word appears. private int count;

/** * Constructor that creates an {@code Entry} object given a word. * * @param word The word to set in the {@code Entry}. */ public Entry(String word) { this.word = word; this.count = 1; }

/** * Returns the word of this {@code Entry}. * * @return The word of this {@code Entry}. */ public String getWord() { return this.word; }

/** * Returns the count of how many times this word appears in the document. * * @return the word count. */ public int getCount() { return this.count; }

/** * Increases the count of the word in this {@code Entry} by one. * */ public void incrementCount() { this.count++; }

@Override public String toString() { String result = "";

result += "Word:\t" + this.word + " " + "Count:\t" + this.count;

return result; }

public int hashCode(String str, int type) { //You must implement this method!!!! int hashValue; if(type ==1){ // primary hash hashValue = str.hashCode(); return hashValue %7; } // secondary hash function hashValue = str.hashCode(); return 7 - (hashValue % 7); } }

------------------------------------------------------------------

public class SimpleList {

//Initial size of the internal array. private static final int INITIAL_CAPACITY = 10;

//Internal array of Entry objects. private Entry[] entries;

//Size of the List private int size;

/** * Constructor creates an empty {@code SimpleList} with default initial capacity. * */ public SimpleList() { this.entries = new Entry[INITIAL_CAPACITY]; this.size = 0; }

/** * This method adds a new {@code Entry} to the end of the list. The list will also be resized when necessary. * * @param e The entry to add to the end of the list. */ public void add(Entry e) { //Check to see if we need to resize the list if (this.size == this.entries.length) { this.resize(); }

this.entries[this.size] = e; this.size++; }

/** * This function finds the {@code Entry} in the list whose word matches the given {@code String}. The function * returns the index of where the Entry can be found, or -1 if the {@code Entry} was not found. * * @param word The word whose {@code Entry} you want to find. * * @return Returns the index of where the {@code Entry} was found, -1 otherwise. */ public int find(String word) {

for (int i = 0 ; i < this.size ; i++) { Entry current = this.entries[i];

if (word.equals(current.getWord())) { return i; } }

return -1; }

/** * This method returns the {@code Entry} at the given index. * * @param index The index of the {@code Entry} to return. {@code index} must be a positive value between 0 to * size()-1 inclusive. * @return The {@code Entry} at the given index. */ public Entry getEntry(int index) { return this.entries[index]; }

/** * This method returns the number of entries in the list. * * @return The number of entries in the list. */ public int size() { return this.size; }

/** * This method will create a new list double the size of the previous, and copy all values from the old list * to the new list. */ private void resize() { Entry[] newList = new Entry[this.entries.length * 2];

for (int i = 0 ; i < this.size ; i++) { newList[i] = this.entries[i]; }

this.entries = newList; }

public String toString() { String result = "";

String formatter = "%-20s%-1d";

for (int i = 0 ; i < this.size ; i++) { Entry e = this.entries[i]; result += String.format(formatter, e.getWord(), e.getCount()) + " "; }

return result; } }

------------------------------------------------------------------

import java.util.*; import java.io.File; import java.io.FileReader; import java.io.IOException; import javax.swing.JFileChooser; import javax.swing.JFrame;

public class HashTable { //variable String[] numbers = null;

//constructor public HashTable(String[] numbers){ this.numbers = numbers; } public SimpleList generateSimpleList(){ SimpleList obj = new SimpleList(); for(int i = 0; i < numbers.length; i++){ // add number obj.add(new Entry(numbers[i])); } return obj; } private SimpleList generateHashTable(){ SimpleList obj = new SimpleList(); Entry[]elist = new Entry[numbers.length]; for(int i =0; i< numbers.length; i++){ // add number Entry entry = new Entry(numbers[i]); // get hash code int hash = entry.hashCode(numbers[i], 1); if(elist[hash]!= null){ // get hash code success elist[hash] = entry; } else{ hash = entry.hashCode(numbers[i], 2); elist[hash] = entry; } } return obj; } // main function public static void main(String args[]) throws IOException{ // read file JFrame frame = new JFrame(); JFileChooser jfchooser = new JFileChooser(); ArrayList list = new ArrayList<>(); // jfchooser.showOpenDialog(null); String[] list = new String[10]; int count = 0; jfchooser.showOpenDialog(frame); File selFile = jfchooser.getSelectedFile(); FileReader reader= new FileReader(selFile); int num = 1; num = reader.read(); while (num != -1){ //num = reader.read(); //list.add(String.valueOf(num)); //System.out.println(list); if(count >= list.length){ String[] newList = new String[count *2]; for(int i = 0; i< count; i++){ newList[i] = list[i]; } list = newList; } list[count] = num.toString(); num = reader.read(); count++; } // creating object HashTable obj = new HashTable(list); obj.generateSimpleList(); obj.generateHashTable(); } }

Step by Step Solution

There are 3 Steps involved in it

Step: 1

blur-text-image

Get Instant Access to Expert-Tailored Solutions

See step-by-step solutions with expert insights and AI powered tools for academic success

Step: 2

blur-text-image

Step: 3

blur-text-image

Ace Your Homework with AI

Get the answers you need in no time with our AI-driven, step-by-step assistance

Get Started

Recommended Textbook for

MongoDB Applied Design Patterns Practical Use Cases With The Leading NoSQL Database

Authors: Rick Copeland

1st Edition

1449340040, 978-1449340049

More Books

Students also viewed these Databases questions

Question

Now present your most persuasive arguments for axing evaluations.

Answered: 1 week ago

Question

If the following true or false? SAT is NP - hard. True False

Answered: 1 week ago

Question

LO1 Discuss four different views of motivation at work.

Answered: 1 week ago

Question

LO6 Summarize various ways to manage retention.

Answered: 1 week ago