// TestHashtableArraylist.java // Test some Hashtable and ArrayList ideas // RJM Programming // December, 2014 import java.util.ArrayList; import java.util.Hashtable; import java.util.Scanner; import java.util.Enumeration; import java.util.*; public class TestHashtableArraylist { public class HashtableArraylist { private int number; private String name; private String email; public void setNumber(int p_number) { this.number = p_number; } public void setName(String p_name) { this.name = p_name; } public void setEmail(String p_email) { this.email = p_email; } public int getNumber() { return this.number; } public String getName() { return this.name; } public String getEmail() { return this.email; } } public static Hashtable contactsHT = new Hashtable(); public static List sortingName = new ArrayList(); public static List sortingEmail = new ArrayList(); public static List sortingNameEmail = new ArrayList(); public static List sortingEmailName = new ArrayList(); public static Hashtable contactsHTEmail = new Hashtable(); public List getContactList() { int number = 0; String ourstring; String ourname; String ouremail; Scanner scanner = new Scanner(System.in); scanner.useDelimiter("\\n"); System.out.println("Contact List\n------------\n\nEnter Name,Email 1 exits: "); ourstring = scanner.next(); while (ourstring.replace("\n", "").trim() != "" && ourstring.replace("\n", "").length() > 0) { if (ourstring.indexOf(",") >= 0) { ourname = ourstring.substring(0, ourstring.indexOf(",")).replace(",", ""); ouremail = ourstring.replace(ourname, "").replace(",", ""); } else { ourname = ourstring; ouremail = ""; while (ouremail == "") { ouremail = scanner.next(); } } HashtableArraylist cl = new HashtableArraylist(); cl.setName(ourname); cl.setEmail(ouremail); cl.setNumber(number); contactsHT.put(ourname, ouremail); contactsHTEmail.put(ouremail, ourname); number++; System.out.println("Enter Name,Email " + (number + 1) + " exits: "); ourstring = scanner.next(); sortingName.add(ourname); sortingNameEmail.add(ourname + "," + ouremail); sortingEmailName.add(ouremail + "," + ourname); } // Can do enumerations ... after collection ... as below ... for (Enumeration e = contactsHT.elements(); e.hasMoreElements();) { sortingEmail.add(e.nextElement()); } // Sort ArrayList collections Collections.sort(sortingName); Collections.sort(sortingEmail); Collections.sort(sortingNameEmail); Collections.sort(sortingEmailName); return sortingName; } public static String getmeNominatedName(int n) { System.out.println("Name " + (n + 1) + " of a sorted list (of " + sortingName.size() + ") is: " + sortingName.get(n)); return sortingName.get(n); } public static String getmeNominatedNameEmail(int n) { String ours = sortingNameEmail.get(n); System.out.println("Name " + (n + 1) + " of a sorted list (of " + sortingNameEmail.size() + ") has the email: " + ours.substring(ours.indexOf(",")).replace(",", "")); return ours; } public static String getmeNominatedEmail(int n) { System.out.println("Email " + (n + 1) + " of a sorted list (of " + sortingEmail.size() + ") is: " + sortingEmail.get(n)); return sortingEmail.get(n); } public static String getmeNominatedEmailName(int n) { String ours = sortingEmailName.get(n); System.out.println("Email " + (n + 1) + " of a sorted list (of " + sortingEmailName.size() + ") has the name: " + ours.substring(ours.indexOf(",")).replace(",", "")); return ours; } public static String getmeLastEmail() { System.out.println("Last email of a sorted list (of " + sortingEmail.size() + ") is: " + sortingEmail.get(sortingEmail.size() - 1)); return sortingEmail.get(sortingEmail.size() - 1); } public static String getmeLastEmailName() { String ours = sortingEmailName.get(sortingEmailName.size() - 1); System.out.println("Last email of a sorted list (of " + sortingEmailName.size() + ") has the name: " + ours.substring(ours.indexOf(",")).replace(",", "")); return ours; } public static String getmeFirstEmail() { System.out.println("First email of a sorted list (of " + sortingEmail.size() + ") is: " + sortingEmail.get(0)); return sortingEmail.get(0); } public static String getmeFirstEmailName() { String ours = sortingEmailName.get(0); System.out.println("First email of a sorted list (of " + sortingEmailName.size() + ") has the name: " + ours.substring(ours.indexOf(",")).replace(",", "")); return ours; } public static String getmeEmailForName(String ourn) { System.out.println("Email for " + ourn + " is: " + contactsHT.get(ourn)); return contactsHT.get(ourn); } public static String getmeNameForEmail(String ourn) { System.out.println("Name for " + ourn + " is: " + contactsHTEmail.get(ourn)); return contactsHTEmail.get(ourn); } public static String getmeLastName() { System.out.println("Last name of a sorted list (of " + sortingName.size() + ") is: " + sortingName.get(sortingName.size() - 1)); return sortingName.get(sortingName.size() - 1); } public static String getmeLastNameEmail() { String ours = sortingNameEmail.get(sortingNameEmail.size() - 1); System.out.println("Last name of a sorted list (of " + sortingNameEmail.size() + ") has the email: " + ours.substring(ours.indexOf(",")).replace(",", "")); return ours; } public static String getmeFirstName() { System.out.println("First name of a sorted list (of " + sortingName.size() + ") is: " + sortingName.get(0)); return sortingName.get(0); } public static String getmeFirstNameEmail() { String ours = sortingNameEmail.get(0); System.out.println("First name of a sorted list (of " + sortingNameEmail.size() + ") has the email: " + ours.substring(ours.indexOf(",")).replace(",", "")); return ours; } public static void main(String[] args) { // Command line name of interest? ... String nameOfInterest = "Smith"; String prefix = ""; if (args.length >= 1) { nameOfInterest = ""; for (int i=0; i<=args.length - 1; i++) { nameOfInterest = nameOfInterest + prefix + args[i]; prefix = " "; } } // Initialize ... TestHashtableArraylist testha = new TestHashtableArraylist(); // Gather data ... sortingName = testha.getContactList(); // Report findings ... String smithsemail = getmeEmailForName(nameOfInterest); getmeFirstName(); getmeFirstNameEmail(); if (sortingName.size() >= 3) { getmeNominatedName(2); getmeNominatedNameEmail(2); } getmeLastName(); getmeLastNameEmail(); getmeFirstEmail(); getmeFirstEmailName(); if (sortingEmail.size() >= 3) { getmeNominatedEmail(2); getmeNominatedEmailName(2); } getmeLastEmail(); getmeLastEmailName(); if (1 == 2 && smithsemail != null) { String smithsname = getmeNameForEmail(smithsemail); } System.out.println("Email for " + nameOfInterest + " is: " + smithsemail); } }