import java.io.PrintWriter; import java.math.BigInteger; import structures.AssociativeArray; import structures.KeyNotFoundException; /** * Experiments with our AssociativeArray class. * * @author Your Name Here * @author Samuel A. Rebelsky */ public class AssociativeArrayExperiments { // +------+-------------------------------------------------------- // | Main | // +------+ /** * Run the experiments. */ public static void main(String[] args) { PrintWriter pen = new PrintWriter(System.out, true); divider(pen); expreimentStringsToStrings(pen); divider(pen); experimentBigIntToBigInt(pen); divider(pen); } // main(String[]) // +-------------+------------------------------------------------- // | Experiments | // +-------------+ /** * Our first experiment: Associative arrays with strings as both keys * and values. */ public static void expreimentStringsToStrings(PrintWriter pen) { AssociativeArray s2s = new ReportingAssociativeArray("s2s", pen); s2s.size(); s2s.set("a", "apple"); s2s.set("A", "aardvark"); s2s.size(); s2s.hasKey("a"); s2s.hasKey("A"); try { s2s.get("a"); } catch (Exception e) { } try { s2s.get("A"); } catch (Exception e) { } s2s.remove("a"); s2s.size(); try { s2s.get("a"); } catch (Exception e) { } try { s2s.get("A"); } catch (Exception e) { } s2s.remove("aardvark"); s2s.size(); try { s2s.get("a"); } catch (Exception e) { } try { s2s.get("A"); } catch (Exception e) { } } // expreimentStringsToStrings /** * Our second experiment: Associative arrays with big integers as * keys and values. */ public static void experimentBigIntToBigInt(PrintWriter pen) { AssociativeArray b2b = new ReportingAssociativeArray("b2b", pen); // Set some values for (int i = 0; i < 11; i++) { b2b.set(BigInteger.valueOf(i), BigInteger.valueOf(i*i)); } // for // Then get them for (int i = 0; i < 11; i++) { try { b2b.get(BigInteger.valueOf(i)); } catch (Exception e) { } } // for // Then remove some of them for (int i = 1; i < 11; i += 2) { b2b.remove(BigInteger.valueOf(i)); } // for // Then see what happens when we get them for (int i = 0; i < 11; i++) { try { b2b.get(BigInteger.valueOf(i)); } catch (Exception e) { } } // for // Then reset or set some values for (int i = 0; i < 11; i += 3) { b2b.set(BigInteger.valueOf(i), BigInteger.valueOf(i + 10)); } // for // Then see what happens when we get them for (int i = 0; i < 11; i++) { try { b2b.get(BigInteger.valueOf(i)); } catch (Exception e) { } } // for } // experimentBigIntToBigInt // +---------+----------------------------------------------------- // | Helpers | // +---------+ /** * Print a divider. */ public static void divider(PrintWriter pen) { pen.println(); pen.println("------------------------------------------------"); pen.println(); } // divider(PrintWriter) } // AssociativeArrayExperiments