import java.util.*; class G9_14 { public static void printCollection( Collection c ){ for( Iterator it = c.iterator(); it.hasNext(); ){ System.out.println( it.next() ); } } public static void main( String[] args ){ List list = new ArrayList(); list.add("Cool"); list.add("stuff"); printCollection(list); Set set = new HashSet(); set.add(new Integer(10)); set.add("Heterogeneous"); printCollection(set); } } class G9_naive { public static void printCollection( Collection<Object> c ){ for( Object o: c ){ System.out.println(o); } } public static void main( String[] args ){ List<Object> list = new ArrayList<Object>(); list.add("Cool"); list.add("stuff"); printCollection(list); Set<Object> set = new HashSet<Object>(); set.add(new Integer(10)); set.add("Heterogeneous"); printCollection(set); List<String> sList = new ArrayList<String>(); sList.add("Homogeneous"); sList.add("list"); // printCollection(sList); // compilation error } } class G9 { public static void printCollection( Collection<?> c ){ // wildcard for( Object o: c ){ System.out.println(o); } } public static void main( String[] args ){ List<Object> list = new ArrayList<Object>(); list.add("Cool"); list.add("stuff"); printCollection(list); Set<Object> set = new HashSet<Object>(); set.add(new Integer(10)); set.add("Heterogeneous"); printCollection(set); List<String> sList = new ArrayList<String>(); sList.add("Homogeneous"); sList.add("list"); printCollection(sList); // List<String> <: Collection<?> } }