import java.util.*; public class Test { public static void main(String arg[]) { System.out.println("Comparing with regular Strings:\n"); ArrayList list = new ArrayList(); list.add("a"); list.add("aa"); list.add("aaa"); list.add("b"); list.add("bb"); list.add("bbb"); list.add("c"); list.add("cc"); list.add("ccc"); sortAndSearch(list); System.out.println("Comparing with modified MyStrings:\n"); ArrayList list2 = new ArrayList(); list2.add(new MyString("a")); list2.add(new MyString("aa")); list2.add(new MyString("aaa")); list2.add(new MyString("b")); list2.add(new MyString("bb")); list2.add(new MyString("bbb")); list2.add(new MyString("c")); list2.add(new MyString("cc")); list2.add(new MyString("ccc")); sortAndSearch(list2); } private static void sortAndSearch(List list) { Collections.sort(list); System.out.println(list); Scanner in = new Scanner(System.in); String key = ""; int index = 0; System.out.println("Enter a word to find out it's index. Just hit enter to exit."); do { System.out.print("> "); key = in.nextLine(); index = Collections.binarySearch(list, key); if (!key.equals("")) { if (index >=0) { System.out.println("The string you entered is at position " + index + "."); } else { System.out.println("The string you entered does not exist within the list."); } } } while (!key.equals("")); in.close(); } }