0 - use collections in JDK 1.4
1 - collections in Java 5
2 - still allows heterogeneity
3 - collections + auto-(un)boxing
4 - generic iterators of generic collections
5 - enhanced for-loop
6 - subtyping for generics
7 - immutable collections?
8 - type problems with arrays
9 - wildcards
10 - what can you do with an existential type?
11 - need for generic methods
12 - some operations on Collection in JDK 1.4 and in Java 5
13 - bounded polymorphism (upper bound on type variable and wildcard)
a
b
c
14 - possibilities and restrictions on upper bounded wildcards
15 - operations on Collection in Java 5, using wildcards and upper bounds
16 - using wildcards and type variables together
17 - when existential types cannot be avoided
18 - mapping and folding: FP versus OOP
19 - F-bounded polymorphism (Comparable and max)
20 - F-bounded polymorphism and subclassing; wildcards with lower bounds
21 - Comparator; restrictions on the use of bounded and unbounded wildcards
22 - implementing max with fold
23 - wildcard capture
24 - implementing swap/max/sort with generic helpers and wildcard capture
25 - using legacy non-generic code from generic code, raw types
26 - type erasure (Vector)
27 - type erasure (swap/max/sort)
28 - unchecked warning
29 - using generic code in legacy code
30 - lack of run-time type information on type variables (getClass, casting)
31 - limitations on arrays
32 - class literals as runtime-type tokens (reflection)
33 - bridge methods
34 - cannot implement the same interface twice
35 - multiple bounds; avoid unchecked cast; covariant return; need for lower bound?
36 - limitatons on wildcards: no safe implementation of copyable Pair
37 - converting legacy code to generic (compatibility with existing clients)