Please help me to solve this problem in seperate parts, A and B // experiment with this size to see how it affects efficiency private final int TABLE_SIZE = 11117; private List<String>[] table = new LinkedList[TABLE_SIZE]; /** * Constructs a word matcher based on the given dictionary. * * @param filename The dictionary file name */ public Project6(String filename) { // ****************** Your code here ********************** } /** * Return a list of dictionary words that have the same letters as the given word. * Differences in letter cases are ignored. * * @param word The word to find matches for. May or may not be in the dictionary. * * @return The list of matching words from the dictionary, all in lower case. * Â Â Â Â Â The word itself is not included in the returned list. * Â Â Â Â Â e.g.: Â Â NAME -> [amen, mane, mean] */ public List<String> getMatches(String word) { // ****************** Your code here ********************** return null; } Solution import java.io.*; class wordcount { public static int words=0; public static int lines=0; public static int chars=0; public static void wc(InputStreamReader isr)throws IOException { int c=0; boolean lastwhite=true; while((c=isr.read())!=-1) { chars++; if(c==\'\ \') lines++; if(c==\'\\t\' || c==\' \' || c==\'\ \') ++words; if(chars!=0) ++chars; } } public static void main(String[] args) { FileReader fr; try { if(args.length==0) { wc(new InputStreamReader(System.in)); } else { for(int i=0;i .