Preface; Obtaining the Example Programs; How to Contact Us; Conventions Used in This Book; Using Code Examples; SafariĀ® Books Online; Acknowledgments;Part I: Generics; Chapter 1: Introduction; 1.1 Generics; 1.2 Boxing and Unboxing; 1.3 Foreach; 1.4 Generic Methods and Varargs; 1.5 Assertions; Chapter 2: Subtyping and Wildcards; 2.1 Subtyping and the Substitution Principle; 2.2 Wildcards with extends; 2.
3 Wildcards with super; 2.4 The Get and Put Principle; 2.5 Arrays; 2.6 Wildcards Versus Type Parameters; 2.7 Wildcard Capture; 2.8 Restrictions on Wildcards; Chapter 3: Comparison and Bounds; 3.1 Comparable; 3.2 Maximum of a Collection; 3.
3 A Fruity Example; 3.4 Comparator; 3.5 Enumerated Types; 3.6 Multiple Bounds; 3.7 Bridges; 3.8 Covariant Overriding; Chapter 4: Declarations; 4.1 Constructors; 4.2 Static Members; 4.
3 Nested Classes; 4.4 How Erasure Works; Chapter 5: Evolution, Not Revolution; 5.1 Legacy Library with Legacy Client; 5.2 Generic Library with Generic Client; 5.3 Generic Library with Legacy Client; 5.4 Legacy Library with Generic Client; 5.5 Conclusions; Chapter 6: Reification; 6.1 Reifiable Types; 6.
2 Instance Tests and Casts; 6.3 Exception Handling; 6.4 Array Creation; 6.5 The Principle of Truth in Advertising; 6.6 The Principle of Indecent Exposure; 6.7 How to Define ArrayList; 6.8 Array Creation and Varargs; 6.9 Arrays as a Deprecated Type?; 6.
10 Summing Up; Chapter 7: Reflection; 7.1 Generics for Reflection; 7.2 Reflected Types are Reifiable Types; 7.3 Reflection for Primitive Types; 7.4 A Generic Reflection Library; 7.5 Reflection for Generics; 7.6 Reflecting Generic Types; Chapter 8: Effective Generics; 8.1 Take Care when Calling Legacy Code; 8.
2 Use Checked Collections to Enforce Security; 8.3 Specialize to Create Reifiable Types; 8.4 Maintain Binary Compatibility; Chapter 9: Design Patterns; 9.1 Visitor; 9.2 Interpreter; 9.3 Function; 9.4 Strategy; 9.5 Subject-Observer;Part II: Collections; Chapter 10: The Main Interfaces of the Java Collections Framework; Chapter 11: Preliminaries; 11.
1 Iterable and Iterators; 11.2 Implementations; 11.3 Efficiency and the O-Notation; 11.4 Contracts; 11.5 Collections and Thread Safety; Chapter 12: The Collection Interface; 12.1 Using the Methods of Collection; 12.2 Implementing Collection; 12.3 Collection Constructors; Chapter 13: Sets; 13.
1 Implementing Set; 13.2 SortedSet and NavigableSet; 13.3 Comparing Set Implementations; Chapter 14: Queues; 14.1 Using the Methods of Queue; 14.2 Implementing Queue; 14.3 BlockingQueue; 14.4 Deque; 14.5 Comparing Queue Implementations; Chapter 15: Lists; 15.
1 Using the Methods of List; 15.2 Implementing List; 15.3 Comparing List Implementations; Chapter 16: Maps; 16.1 Using the Methods of Map; 16.2 Implementing Map; 16.3 SortedMap and NavigableMap; 16.4 ConcurrentMap; 16.5 ConcurrentNavigableMap; 16.
6 Comparing Map Implementations; Chapter 17: The Collections Class; 17.1 Generic Algorithms; 17.2 Collection Factories; 17.3 Wrappers; 17.4 Other Methods;Colophon;.