From 7b9cd884a0447aa1ab58bfec4f801ee2b5153b19 Mon Sep 17 00:00:00 2001 From: bculkin2442 Date: Thu, 31 Mar 2016 14:21:49 -0400 Subject: Code maintenance changes --- RGens/src/main/java/bjc/RGens/ZadronsPouch.java | 28 +- .../main/java/bjc/RGens/parser/GrammarReader.java | 22 +- .../java/bjc/RGens/parser/GrammarReaderApp.java | 8 +- .../java/bjc/RGens/parser/GrammarReaderCLI.java | 4 +- .../java/bjc/RGens/parser/RBGrammarReader.java | 20 +- .../main/java/bjc/RGens/parser/ReaderState.java | 2 +- .../bjc/RGens/text/markov/FrequencyCounter.java | 4 +- .../main/java/bjc/RGens/text/markov/MyEntry.java | 71 ----- .../main/java/bjc/RGens/text/markov/MyHashMap.java | 347 --------------------- .../java/bjc/RGens/text/markov/MyIterator.java | 84 ----- .../java/bjc/RGens/text/markov/SuffixCounter.java | 8 +- .../java/bjc/RGens/text/markov/TextGenerator.java | 8 +- 12 files changed, 60 insertions(+), 546 deletions(-) delete mode 100644 RGens/src/main/java/bjc/RGens/text/markov/MyEntry.java delete mode 100755 RGens/src/main/java/bjc/RGens/text/markov/MyHashMap.java delete mode 100644 RGens/src/main/java/bjc/RGens/text/markov/MyIterator.java (limited to 'RGens/src/main/java') diff --git a/RGens/src/main/java/bjc/RGens/ZadronsPouch.java b/RGens/src/main/java/bjc/RGens/ZadronsPouch.java index 240e967..742f0f3 100644 --- a/RGens/src/main/java/bjc/RGens/ZadronsPouch.java +++ b/RGens/src/main/java/bjc/RGens/ZadronsPouch.java @@ -4,12 +4,25 @@ import bjc.utils.funcdata.FunctionalStringTokenizer; import bjc.utils.funcdata.FunctionalList; import bjc.utils.gen.RandomGrammar; +/** + * Example showing code manipulate of random grammars + * + * @author ben + * + */ public class ZadronsPouch { + /** + * Main method for running application + * + * @param args + * Unused CLI args + */ public static void main(String[] args) { ZadronsPouch zp = new ZadronsPouch(); for (int i = 0; i < 100; i++) { - FunctionalList ls = zp.wg.genList("", " "); + FunctionalList ls = zp.grammar + .generateListValues("", " "); StringBuilder sb = new StringBuilder(); @@ -17,16 +30,15 @@ public class ZadronsPouch { System.out.println(sb.toString().replaceAll("\\s+", " ")); } - - System.out.println(); - System.out.println(); - System.out.println(); } - private RandomGrammar wg; + private RandomGrammar grammar; + /** + * Create a new instance with a grammar + */ public ZadronsPouch() { - wg = new RandomGrammar<>(); + grammar = new RandomGrammar<>(); addRule("", "", "", "", "", "", "", "", "", "", @@ -150,7 +162,7 @@ public class ZadronsPouch { .toList(s -> s)); } - wg.makeRule(rule, cses); + grammar.makeRule(rule, cses); } private void addVialRules() { diff --git a/RGens/src/main/java/bjc/RGens/parser/GrammarReader.java b/RGens/src/main/java/bjc/RGens/parser/GrammarReader.java index c325ac1..496cd30 100644 --- a/RGens/src/main/java/bjc/RGens/parser/GrammarReader.java +++ b/RGens/src/main/java/bjc/RGens/parser/GrammarReader.java @@ -9,9 +9,9 @@ import java.util.Scanner; import java.util.StringTokenizer; import java.util.function.BiConsumer; +import bjc.utils.exceptions.UnknownPragmaException; import bjc.utils.funcdata.FunctionalStringTokenizer; import bjc.utils.gen.WeightedGrammar; -import bjc.utils.parserutils.UnknownPragmaException; public class GrammarReader { private static Map> actMap; @@ -52,7 +52,7 @@ public class GrammarReader { private static void debugGrammar(StringTokenizer stk, ReaderState rs) { System.out.println("Printing rule names: "); - for (String rul : rs.getRules().ruleNames()) { + for (String rul : rs.getRules().getRuleNames()) { System.out.println("\t" + rul); } @@ -89,7 +89,7 @@ public class GrammarReader { private static void editSubGrammar(StringTokenizer stk, ReaderState rs) { String sgName = stk.nextToken(); - rs.pushGrammar(rs.getRules().getSubGrammar(sgName)); + rs.pushGrammar(rs.getRules().getSubgrammar(sgName)); } public static WeightedGrammar fromStream(InputStream is) { @@ -156,7 +156,7 @@ public class GrammarReader { String fName = stk.nextToken(); try { - rs.getRules().addSubGrammar(sgName, + rs.getRules().addSubgrammar(sgName, fromStream(new FileInputStream(fName))); } catch (FileNotFoundException e) { throw new PragmaErrorException("Could not load subgrammar " @@ -188,29 +188,29 @@ public class GrammarReader { String gName = stk.nextToken(); String rName = stk.nextToken(); - WeightedGrammar nwg = rs.getRules().getSubGrammar(gName); - rs.getRules().removeSubgrammar(gName); + WeightedGrammar nwg = rs.getRules().getSubgrammar(gName); + rs.getRules().deleteSubgrammar(gName); - nwg.addSubGrammar(rName, rs.getRules()); + nwg.addSubgrammar(rName, rs.getRules()); rs.setRules(nwg); } private static void removeRule(StringTokenizer stk, ReaderState rs) { String rName = stk.nextToken(); - rs.getRules().removeRule(rName); + rs.getRules().deleteRule(rName); } private static void removeSubGrammar(StringTokenizer stk, ReaderState rs) { String sgName = stk.nextToken(); - rs.getRules().removeSubgrammar(sgName); + rs.getRules().deleteSubgrammar(sgName); } private static void saveGrammar(StringTokenizer stk, ReaderState rs) { String sgName = stk.nextToken(); WeightedGrammar sg = rs.popGrammar(); - rs.getRules().addSubGrammar(sgName, sg); + rs.getRules().addSubgrammar(sgName, sg); } private static void subordinateGrammar(StringTokenizer stk, @@ -218,7 +218,7 @@ public class GrammarReader { String gName = stk.nextToken(); WeightedGrammar nwg = new WeightedGrammar<>(); - nwg.addSubGrammar(gName, rs.getRules()); + nwg.addSubgrammar(gName, rs.getRules()); rs.setRules(nwg); } diff --git a/RGens/src/main/java/bjc/RGens/parser/GrammarReaderApp.java b/RGens/src/main/java/bjc/RGens/parser/GrammarReaderApp.java index 28f1587..8adaa62 100644 --- a/RGens/src/main/java/bjc/RGens/parser/GrammarReaderApp.java +++ b/RGens/src/main/java/bjc/RGens/parser/GrammarReaderApp.java @@ -40,13 +40,13 @@ public class GrammarReaderApp { String initRule = ""; - if (!wg.hasInitRule()) { + if (!wg.hasInitialRule()) { initRule = SimpleDialogs.getChoice(null, "Pick a initial rule", "Pick a initial rule to generate choices from", - wg.ruleNames().stream().sorted() + wg.getRuleNames().stream().sorted() .toArray(String[]::new)); } else { - initRule = wg.getInitRule(); + initRule = wg.getInitialRule(); } int count = SimpleDialogs.getWhole(null, @@ -65,7 +65,7 @@ public class GrammarReaderApp { } for (int i = 0; i < count; i++) { - String s = wg.genList(initRule, " ") + String s = wg.generateListValues(initRule, " ") .reduceAux(new StringBuilder(), (strang, strangBuilder) -> strangBuilder .append(strang), diff --git a/RGens/src/main/java/bjc/RGens/parser/GrammarReaderCLI.java b/RGens/src/main/java/bjc/RGens/parser/GrammarReaderCLI.java index a40d622..f782c5f 100644 --- a/RGens/src/main/java/bjc/RGens/parser/GrammarReaderCLI.java +++ b/RGens/src/main/java/bjc/RGens/parser/GrammarReaderCLI.java @@ -29,7 +29,7 @@ public class GrammarReaderCLI { } if (rName.equalsIgnoreCase("--list-rules")) { - for (String rn : wg.ruleNames()) { + for (String rn : wg.getRuleNames()) { System.out.println(rn); } System.exit(0); @@ -38,7 +38,7 @@ public class GrammarReaderCLI { int rCount = Integer.parseInt(args[2]); for (int i = 0; i < rCount; i++) { - String s = wg.genList(rName, " ") + String s = wg.generateListValues(rName, " ") .reduceAux(new StringBuilder(), (strang, strangBuilder) -> strangBuilder .append(strang), diff --git a/RGens/src/main/java/bjc/RGens/parser/RBGrammarReader.java b/RGens/src/main/java/bjc/RGens/parser/RBGrammarReader.java index c319d12..86079ac 100644 --- a/RGens/src/main/java/bjc/RGens/parser/RBGrammarReader.java +++ b/RGens/src/main/java/bjc/RGens/parser/RBGrammarReader.java @@ -42,7 +42,7 @@ public class RBGrammarReader { private static void debugGrammar(StringTokenizer stk, ReaderState rs) { System.out.println("Printing rule names: "); - for (String rul : rs.getRules().ruleNames()) { + for (String rul : rs.getRules().getRuleNames()) { System.out.println("\t" + rul); } @@ -63,7 +63,7 @@ public class RBGrammarReader { private static void editSubGrammar(StringTokenizer stk, ReaderState rs) { String sgName = stk.nextToken(); - rs.pushGrammar(rs.getRules().getSubGrammar(sgName)); + rs.pushGrammar(rs.getRules().getSubgrammar(sgName)); } public static WeightedGrammar fromStream(InputStream is) { @@ -135,7 +135,7 @@ public class RBGrammarReader { String fName = stk.nextToken(); try { - rs.getRules().addSubGrammar(sgName, + rs.getRules().addSubgrammar(sgName, fromStream(new FileInputStream(fName))); } catch (FileNotFoundException e) { throw new PragmaErrorException("Could not load subgrammar " @@ -167,29 +167,29 @@ public class RBGrammarReader { String gName = stk.nextToken(); String rName = stk.nextToken(); - WeightedGrammar nwg = rs.getRules().getSubGrammar(gName); - rs.getRules().removeSubgrammar(gName); + WeightedGrammar nwg = rs.getRules().getSubgrammar(gName); + rs.getRules().deleteSubgrammar(gName); - nwg.addSubGrammar(rName, rs.getRules()); + nwg.addSubgrammar(rName, rs.getRules()); rs.setRules(nwg); } private static void removeRule(StringTokenizer stk, ReaderState rs) { String rName = stk.nextToken(); - rs.getRules().removeRule(rName); + rs.getRules().deleteRule(rName); } private static void removeSubGrammar(StringTokenizer stk, ReaderState rs) { String sgName = stk.nextToken(); - rs.getRules().removeSubgrammar(sgName); + rs.getRules().deleteSubgrammar(sgName); } private static void saveGrammar(StringTokenizer stk, ReaderState rs) { String sgName = stk.nextToken(); WeightedGrammar sg = rs.popGrammar(); - rs.getRules().addSubGrammar(sgName, sg); + rs.getRules().addSubgrammar(sgName, sg); } private static void subordinateGrammar(StringTokenizer stk, @@ -197,7 +197,7 @@ public class RBGrammarReader { String gName = stk.nextToken(); WeightedGrammar nwg = new WeightedGrammar<>(); - nwg.addSubGrammar(gName, rs.getRules()); + nwg.addSubgrammar(gName, rs.getRules()); rs.setRules(nwg); } diff --git a/RGens/src/main/java/bjc/RGens/parser/ReaderState.java b/RGens/src/main/java/bjc/RGens/parser/ReaderState.java index 3e25741..50be322 100644 --- a/RGens/src/main/java/bjc/RGens/parser/ReaderState.java +++ b/RGens/src/main/java/bjc/RGens/parser/ReaderState.java @@ -55,6 +55,6 @@ public class ReaderState { } public void setInitialRule(String rName) { - wg.peek().setInitRule(rName); + wg.peek().setInitialRule(rName); } } diff --git a/RGens/src/main/java/bjc/RGens/text/markov/FrequencyCounter.java b/RGens/src/main/java/bjc/RGens/text/markov/FrequencyCounter.java index 6009828..abe1c8c 100755 --- a/RGens/src/main/java/bjc/RGens/text/markov/FrequencyCounter.java +++ b/RGens/src/main/java/bjc/RGens/text/markov/FrequencyCounter.java @@ -24,7 +24,7 @@ public class FrequencyCounter { Scanner s = new Scanner(System.in); text = s.nextLine(); - MyHashMap hash = new MyHashMap(); + Map hash = new HashMap(); int distinct = 0; for (int i = 0; i <= text.length() - k; i++) { @@ -46,7 +46,7 @@ public class FrequencyCounter { System.out.println(distinct + " distinct keys"); - Iterator keys = hash.keys(); + Iterator keys = hash.keySet().iterator(); while (keys.hasNext()) { String key = keys.next(); diff --git a/RGens/src/main/java/bjc/RGens/text/markov/MyEntry.java b/RGens/src/main/java/bjc/RGens/text/markov/MyEntry.java deleted file mode 100644 index c33fa18..0000000 --- a/RGens/src/main/java/bjc/RGens/text/markov/MyEntry.java +++ /dev/null @@ -1,71 +0,0 @@ -package bjc.RGens.text.markov; - -/** - * Represents a key, value pairing. - * - * @author Daniel Friedman - * - */ -public class MyEntry { - protected K key; - protected V value; - - @Override - /** - * Gives the hashcode of a MyEntry object. - * - * @return the hashcode of the MyEntry's key. - */ - public int hashCode() { - return key.hashCode(); - } - - /** - * Tests whether this object is equivalent to a specified other. - * - * @param obj - * the other object. - * @return true if the keys are equivalent. - */ - @SuppressWarnings("unchecked") - @Override - public boolean equals(Object obj) { - boolean ret = false; - - if (obj == null) { - ret = false; - } - - MyEntry other = (MyEntry) obj; - - if (key.equals(other.key)) { - ret = true; - } - - return ret; - } - - /** - * Constructs a MyEntry object with given key and value. - * - * @param key - * the key to be stored. - * @param value - * the value to be stored. - * @param myHashMap - * TODO - */ - public MyEntry(K key, V value) { - this.key = key; - this.value = value; - } - - /** - * Gives a String representation of this object. - * - * @return the String representation. - */ - public String toString() { - return "(" + key + ", " + value + ")"; - } -} \ No newline at end of file diff --git a/RGens/src/main/java/bjc/RGens/text/markov/MyHashMap.java b/RGens/src/main/java/bjc/RGens/text/markov/MyHashMap.java deleted file mode 100755 index 10158ea..0000000 --- a/RGens/src/main/java/bjc/RGens/text/markov/MyHashMap.java +++ /dev/null @@ -1,347 +0,0 @@ -package bjc.RGens.text.markov; - -import java.util.*; - -/** - * A Hash table implementation. Uses an array of LinkedList as - * backing storage. - * - * @author Daniel Friedman - * - * @param - * generic type for Keys. - * @param - * generic type for Values. - */ - -public class MyHashMap { - private int size; - private float loadFactor; - - LinkedList> table[]; - private ArrayList primes = new ArrayList(); - - /** - * Constructs a new MyHashMap object. - * - * @param capacity - * the size of the array. - * @param loadFactor - * the specified load factor. The array will resize when the - * load factor is reached. - */ - @SuppressWarnings("unchecked") - public MyHashMap(int capacity, float loadFactor) { - table = (LinkedList>[]) new LinkedList[capacity]; - - this.loadFactor = loadFactor; - - for (int i = 0; i < table.length; i++) { - table[i] = new LinkedList>(); - } - } - - /** - * Constructs a MyHashMap with capacity 11 and load factor 0.75. - */ - public MyHashMap() { - this(11, (float) 0.75); - - primes.add(11); - primes.add(23); - primes.add(47); - primes.add(97); - primes.add(197); - primes.add(397); - primes.add(797); - primes.add(1597); - primes.add(3203); - primes.add(6421); - primes.add(12853); - primes.add(25717); - primes.add(51437); - primes.add(102877); - primes.add(205759); - primes.add(411527); - primes.add(823117); - primes.add(1646237); - primes.add(3292489); - primes.add(6584983); - primes.add(13169977); - primes.add(26339969); - primes.add(52679969); - primes.add(105359939); - primes.add(210719881); - primes.add(421439783); - primes.add(842879579); - primes.add(1685759167); - } - - /** - * Gives the number of MyEntries in the array. - * - * @return number of MyEntry objects in the array. - */ - public int size() { - return size; - } - - /** - * Tests whether or not the array is empty. - * - * @return true if empty, false otherwise. - */ - public boolean isEmpty() { - if (size == 0) { - return true; - } else { - return false; - } - } - - /** - * Removes all objects from the array. - */ - public void clear() { - for (int i = 0; i < table.length; i++) { - table[i].clear(); - } - } - - /** - * Gives a String representation of the array. - * - * @return said String representation. - */ - public String toString() { - String ret = ""; - - for (int i = 0; i < table.length; i++) { - ret += ("Bucket " + i + ": " + table[i] + "\n"); - } - - return ret; - } - - /** - * Adds a key, value mapping to the array. If the key already is - * contained, the value will be updated. - * - * @param key - * the key to be added. - * @param value - * the value to be added. - * @return the previous value if the key already was contained, null - * otherwise. - */ - public V put(K key, V value) { - MyEntry entry = new MyEntry(key, value); - - int hashCode = Math.abs(key.hashCode()); - int mapping = hashCode % (table.length); - - LinkedList> bucket = table[mapping]; - - V ret = null; - - if (bucket.contains(entry)) { - int index = bucket.indexOf(entry); - - ret = bucket.get(index).value; - bucket.set(index, entry); - } else { - bucket.add(entry); - } - - size++; - - if ((double) size / (double) table.length >= loadFactor) { - resize(); - } - - return ret; - } - - /** - * Gives the value associated with a specified key. - * - * @param key - * the specified key. - * @return the value associated. Null if the key is not found. - */ - public V get(K key) { - V ret = null; - - int hashCode = Math.abs(key.hashCode()); - int mapping = hashCode % (table.length); - - LinkedList> bucket = table[mapping]; - - for (int i = 0; i < bucket.size(); i++) { - MyEntry cur = bucket.get(i); - - if (cur.key.equals(key)) { - ret = cur.value; - } - } - return ret; - } - - /** - * Removes a specified object from the array. - * - * @param key - * the key corresponding to the MyEntry to be removed. - * @return the value associated with the removed key. - */ - public V remove(K key) { - V ret = null; - - int hashCode = Math.abs(key.hashCode()); - int mapping = hashCode % (table.length); - - LinkedList> bucket = table[mapping]; - - for (int i = 0; i < bucket.size(); i++) { - MyEntry cur = bucket.get(i); - - if (cur.key.equals(key)) { - ret = cur.value; - bucket.remove(cur); - } - } - - size--; - return ret; - } - - /** - * Finds whether or not the array contains a given key. - * - * @param key - * the key to be tested. - * @return true if found, false if not. - */ - public boolean containsKey(K key) { - boolean ret = false; - - int hashCode = Math.abs(key.hashCode()); - int mapping = hashCode % (table.length); - - LinkedList> bucket = table[mapping]; - MyEntry test = new MyEntry(key, null); - - if (bucket.contains(test)) { - ret = true; - } - - return ret; - } - - /** - * Finds whether or not the array contains a given value. - * - * @param value - * the value to be tested. - * @return true if found, false if not. - */ - public boolean containsValue(V value) { - boolean ret = false; - - for (int i = 0; i < table.length; i++) { - LinkedList> bucket = table[i]; - - for (int j = 0; j < bucket.size(); j++) { - MyEntry entry = bucket.get(j); - - if (entry.value.equals(value)) - ret = true; - } - } - return ret; - } - - /** - * Iterates over the MyEntry objects in the array, looking at their - * keys. - * - * @return a keys iterator. - */ - public Iterator keys() { - return new MyIterator(this); - } - - /** - * Resizes the array to the next largest prime number that is at least - * double the current array size. - */ - public void resize() { - MyHashMap tmp = new MyHashMap(helper(table.length), - (float) 0.75); - Iterator it = keys(); - - while (it.hasNext()) { - K key = it.next(); - V value = get(key); - tmp.put(key, value); - } - - this.table = tmp.table; - this.size = tmp.size; - this.loadFactor = tmp.loadFactor; - } - - /** - * Gives the next largest prime number that is at least double the - * current array size. - * - * @param i - * @return - */ - public int helper(int i) { - int ret = -1; - - for (int j = 0; j < primes.size(); j++) { - if (primes.get(j) > i) { - ret = primes.get(j); - break; - } - } - - return ret; - } - - /** - * Tests the MyHashMap class and its methods. - * - */ - public static void main(String[] args) { - // test1: - /* - * MyHashMap testMap = new MyHashMap(); - * - * System.out.println("HashMap size: "+testMap.size()); - * System.out.println("HashMap capacity: "+testMap.table.length); - * System.out.println("HashMap Load Factor: "+testMap.loadFactor); - * System.out.println("HashMap isEmpty? "+testMap.isEmpty()); - * System.out.println("HashMap toString: "+testMap); - */ - - // test2: - MyHashMap testMap = new MyHashMap(); - - for (int i = 0; i < 100; i++) { - testMap.put("" + i, i); - System.out.println("Hashtable:"); - System.out.println(testMap); - } - - for (int i = 0; i < 100; i++) { - String key = "" + i; - System.out.println("Removing key " + key + ":"); - testMap.remove(key); - System.out.println(testMap); - } - } -} diff --git a/RGens/src/main/java/bjc/RGens/text/markov/MyIterator.java b/RGens/src/main/java/bjc/RGens/text/markov/MyIterator.java deleted file mode 100644 index bb6d0d9..0000000 --- a/RGens/src/main/java/bjc/RGens/text/markov/MyIterator.java +++ /dev/null @@ -1,84 +0,0 @@ -package bjc.RGens.text.markov; - -import java.util.Iterator; -import java.util.LinkedList; -import java.util.NoSuchElementException; - -public class MyIterator implements Iterator { - private final MyHashMap attachedMap; - - public MyIterator(MyHashMap myHashMap) { - attachedMap = myHashMap; - bucket = attachedMap.table[bucketIndex]; - } - - int bucketIndex = 0; - - LinkedList> bucket; - Iterator> listIt = bucket.iterator(); - - MyEntry cur; - - /** - * Finds whether or not there is a next MyEntry object in the array. - * - * @return - */ - @Override - public boolean hasNext() { - if (listIt.hasNext()) { - return true; - } else if (bucketIndex == (attachedMap.table.length - 1)) { - return false; - } else { - for (int i = bucketIndex - + 1; i < attachedMap.table.length; i++) { - if (!attachedMap.table[i].isEmpty()) { - return true; - } - } - } - return false; - } - - /** - * Gives the key associated with the next MyEntry object in the array. - * Throws a NoSuchElementException if the array has been completely - * iterated. - * - * @return the key associated with the next MyEntry object. - */ - @Override - public K next() { - K ret = null; - - if (listIt.hasNext()) { - cur = listIt.next(); - ret = cur.key; - } else if (hasNext()) { - for (int i = bucketIndex - + 1; i < attachedMap.table.length; i++) { - if (!attachedMap.table[i].isEmpty()) { - bucketIndex = i; - - bucket = attachedMap.table[bucketIndex]; - listIt = bucket.iterator(); - cur = listIt.next(); - - ret = cur.key; - break; - } - } - } else - throw new NoSuchElementException("All buckets iterated."); - return ret; - } - - /** - * Removes the current MyEntry. - */ - @Override - public void remove() { - bucket.remove(cur); - } -} \ No newline at end of file diff --git a/RGens/src/main/java/bjc/RGens/text/markov/SuffixCounter.java b/RGens/src/main/java/bjc/RGens/text/markov/SuffixCounter.java index 67a8d01..0a8034b 100755 --- a/RGens/src/main/java/bjc/RGens/text/markov/SuffixCounter.java +++ b/RGens/src/main/java/bjc/RGens/text/markov/SuffixCounter.java @@ -1,6 +1,8 @@ package bjc.RGens.text.markov; +import java.util.HashMap; import java.util.Iterator; +import java.util.Map; import java.util.Map.Entry; import java.util.Scanner; @@ -25,7 +27,7 @@ public class SuffixCounter { Scanner s = new Scanner(System.in); text = s.nextLine(); - MyHashMap hash = new MyHashMap(); + Map hash = new HashMap(); int distinct = 0; @@ -57,7 +59,7 @@ public class SuffixCounter { } System.out.println(distinct + " distinct keys"); - Iterator keys = hash.keys(); + Iterator keys = hash.keySet().iterator(); while (keys.hasNext()) { String hashKey = keys.next(); @@ -74,7 +76,7 @@ public class SuffixCounter { System.out.println(); } - + s.close(); } } diff --git a/RGens/src/main/java/bjc/RGens/text/markov/TextGenerator.java b/RGens/src/main/java/bjc/RGens/text/markov/TextGenerator.java index d347179..8c8bf57 100755 --- a/RGens/src/main/java/bjc/RGens/text/markov/TextGenerator.java +++ b/RGens/src/main/java/bjc/RGens/text/markov/TextGenerator.java @@ -52,9 +52,10 @@ public class TextGenerator { } catch (FileNotFoundException e) { System.out.println("File not found."); e.printStackTrace(); + System.exit(1); } - MyHashMap hash = new MyHashMap(); + Map hash = new HashMap(); Character next = null; @@ -63,11 +64,12 @@ public class TextGenerator { } catch (IOException e1) { System.out.println("IOException in stepping through the file"); e1.printStackTrace(); + System.exit(1); } StringBuilder origFileBuffer = new StringBuilder(); - while (Character.isDefined(next)) { + while (next != null && Character.isDefined(next)) { Character.toString(next); origFileBuffer.append(next); @@ -121,7 +123,7 @@ public class TextGenerator { } if (hash.size() < 100) { - Iterator keys = hash.keys(); + Iterator keys = hash.keySet().iterator(); while (keys.hasNext()) { String hashKey = keys.next(); -- cgit v1.2.3