*** My code below is working fine but I just need help with the Unique words part. I tried to do it, but it just keeps iterating over and over. I just want it to be printed once. Keep in mind that when you're adding, each unique word gets it own entry as a key. Please help me. DO NOT USE HASHSET OR DON'T IMPORT ANYTHING!!!. Thank you in advance for your help**** Output is supposed to look like this: import java.io.File; import java.io.FileNotFoundException; import java.util.Iterator; import java.util.Scanner; public class WordFrequency { public static void main(String[] args) { HashedDictionary collision = new HashedDictionary<>(); int[] tableLengths = {1361, 1637, 2011}; // Hash table lengths to be tested System.out.println("Word Frequency by C.Murillo\n"); System.out.println("Count Word"); System.out.println("----- ----------------------"); for (int i = 0; i < tableLengths.length; i++) { HashedDictionary dictionary = new HashedDictionary<>(tableLengths[i]); try { Scanner scanner = new Scanner(new File("usconstitution.txt")); //FIX NAME OF THE FILE while (scanner.hasNext()) { String word = scanner.next().toLowerCase(); // convert word to lowercase before hashing if (dictionary.contains(word)) { dictionary.add(word, dictionary.getValue(word) + 1); } else { dictionary.add(word, 1); } } scanner.close(); } catch (FileNotFoundException e) { e.printStackTrace(); } Iterator keyIterator = dictionary.getKeyIterator(); while (keyIterator.hasNext()) { String word = keyIterator.next(); System.out.printf("%-8d%-24s\n", dictionary.getValue(word), word); } collision.add(Integer.toString(tableLengths[i]), dictionary.getCollisionCount()); System.out.println("Unique words = " +dictionary.getSize()); } // Output the combined results for all hash table lengths System.out.println("Table\nLength Collision"); for (int i = 0; i < tableLengths.length; i++) { System.out.printf("%-7d%d\n", tableLengths[i], collision.getValue(Integer.toString(tableLengths[i]))); } } }.