1 import java.util.ArrayList;
2
3 public class WildcardDemo
4 {
5 public static <E> void addAll(ArrayList<E> lst, ArrayList<? extends E> other)
6 // public static <E> void addAll(ArrayList<E> lst, ArrayList<E> other)
7 // doesn't work with Student array list
8 {
9 for (E e : other)
10 {
11 lst.add(e);
12 }
13 }
14
15 public static <E extends Comparable<? super E>> E max(ArrayList<E> a)
16 // public static <E extends Comparable<E>> E max(ArrayList<E> a)
17 // doesn't work with Student array list
18 {
19 E largest = a.get(0);
20 for (int i = 1; i < a.size(); i++)
21 {
22 if (a.get(i).compareTo(largest) > 0)
23 {
24 largest = a.get(i);
25 }
26 }
27 return largest;
28 }
29
30 public static void main(String[] args)
31 {
32 ArrayList<Student> students = new ArrayList<Student>();
33 students.add(new Student("Fred", "CS"));
34 students.add(new Student("Ann", "Bio"));
35 students.add(new Student("Sue", "CS"));
36
37 ArrayList<Person> people = new ArrayList<Person>();
38 people.add(new Person("Harry"));
39
40 addAll(people, students);
41 System.out.println(people);
42
43 System.out.println(max(students));
44 }
45 }