Originally submitted at O'Reilly

Java Generics and Collections covers everything from the most basic uses of generics to the strangest corner cases. It teaches you everything you need to know about the collections libraries, so you'll always know which collection is appropriate for any given task, and how to use it....
Superb
Pros: Accurate, Concise, Well-written, Easy to understand, Helpful examples
Best Uses: Expert, Intermediate
Describe Yourself: Developer, Designer
The O'Reilly series of books on Java and Java-related topics is outstanding. This is one more outstanding book in that series. This book is well-organized, the material is well-presented and all details - many of which I beforehand was only vaguely or not all aware of - are included.
Noteworthy among various other features is the explanation of terms such as "contract" which, as the authors note, is rarely defined but widely used in texts on Java. The authors note on page 157 (Chapter 11, section 4 Contracts) "you are likely to come across the term contract, often without any accompanying explanation". True enough, so the authors proceed to give a clear explanation of what "contract" means in regard to software.
This is typical of the excellent exposition of some complicated details in the functioning of generics and of the Collections framework in general.
(legalese)