import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Calendar; import java.util.Collections; import java.util.Comparator; import java.util.GregorianCalendar; import java.util.Iterator; import java.util.List; public class DataStructures { public static void main(String[] args) { List people = new ArrayList(); people.add(new Person("barney", new GregorianCalendar(1980, Calendar.JUNE, 10))); people.add(new Person("heather", new GregorianCalendar(1980, Calendar.FEBRUARY, 12))); people.add(new Person("emery", new GregorianCalendar(2005, Calendar.AUGUST, 12))); Iterator itr = people.iterator(); int sum = 0; while (itr.hasNext()) { sum += itr.next().getAge(); } System.out.println("Average Age: " + sum / people.size()); Collections.sort(people, new Comparator() { public int compare(Person p1, Person p2) { return p1.name.compareTo(p2.name); } }); System.out.println(people); } static class Person { public String name; public Calendar dob; public Person(String name, Calendar dob) { this.name = name; this.dob = dob; } public int getAge() { // cheater! return (int) ((new GregorianCalendar().getTimeInMillis() - dob.getTimeInMillis()) / 1000 / 86400); } public String toString() { return name + " (" + new SimpleDateFormat("MMM d, yyy").format(dob.getTime()) + ")"; } } }