import java.util.*; class ListTest { public static void test(List x) { // Do a search: Object p = x.get(2); if (x.contains(p)) System.out.println("Found " + p); // Do another: int index = x.indexOf(p); if (index != -1) System.out.println("Found " + p + " in position " + index); // Do a binary search: Collections.sort(x); System.out.println(x); index = Collections.binarySearch(x, p); if (index >= 0) System.out.println("Found " + p + " in position " + index); // Misc: System.out.println("max == " + Collections.max(x)); System.out.println("min == " + Collections.min(x)); Comparator desc = Collections.reverseOrder(); System.out.println("max (desc) == " + Collections.max(x, desc)); System.out.println("min (desc) == " + Collections.min(x, desc)); Collections.shuffle(x); iterate(x); } public static void iterate(Collection c) { System.out.println("Iterating..."); Iterator i = c.iterator(); while (i.hasNext()) System.out.println(i.next()); } public static void main(String[] args) { // Build ArrayList: ArrayList array = new ArrayList(); array.add(new Person("Horatio", 1835,12,6)); array.add(new Person("Charles",1897,3,11)); array.add(new Person("Albert",1901,1,20)); System.out.println(array); test(array); array.add(new Person("James", 1976, 8, 13)); System.out.println(array); System.out.println(); // Build LinkedList: LinkedList list = new LinkedList(array); List view = list.subList(1,3); view.add(new Person("Gregory", 1582, 10, 15)); Collections.reverse(view); System.out.println(list); test(list); } } /* Output: [{Horatio,12/6/1835}, {Charles,3/11/1897}, {Albert,1/20/1901}] Found {Albert,1/20/1901} Found {Albert,1/20/1901} in position 2 [{Albert,1/20/1901}, {Charles,3/11/1897}, {Horatio,12/6/1835}] Found {Albert,1/20/1901} in position 0 max == {Horatio,12/6/1835} min == {Albert,1/20/1901} max (desc) == {Albert,1/20/1901} min (desc) == {Horatio,12/6/1835} Iterating... {Horatio,12/6/1835} {Albert,1/20/1901} {Charles,3/11/1897} [{Horatio,12/6/1835}, {Albert,1/20/1901}, {Charles,3/11/1897}, {James,8/13/1976}] [{Horatio,12/6/1835}, {Gregory,10/15/1582}, {Charles,3/11/1897}, {Albert,1/20/1901}, {James,8/13/1976}] Found {Charles,3/11/1897} Found {Charles,3/11/1897} in position 2 [{Albert,1/20/1901}, {Charles,3/11/1897}, {Gregory,10/15/1582}, {Horatio,12/6/1835}, {James,8/13/1976}] Found {Charles,3/11/1897} in position 1 max == {James,8/13/1976} min == {Albert,1/20/1901} max (desc) == {Albert,1/20/1901} min (desc) == {James,8/13/1976} Iterating... {James,8/13/1976} {Gregory,10/15/1582} {Charles,3/11/1897} {Horatio,12/6/1835} {Albert,1/20/1901} */