Horstmann, Cay S., and Cornell, Gary, Core Java 2, 7th ed., Vols. 1 and 2, Upper Saddle River, NJ: Prentice Hall PTR, 2005.
This is an invaluable reference for any serious Java programmer. A reader interested in, for example, graphic user interfaces in Java should turn here next. Be sure to get the latest edition.
Part I: Object-Oriented Programming
Encapsulation
Polymorphism
Inheritance
Part II: Linear Structures
Stacks and Queues
Array-Based Structures
Linked Structures
Part III: Algorithms
Analysis of Algorithms
Searching and Sorting
Recursion
Part IV: Trees and Sets
Trees
Sets
Part V: Advanced Topics
Advanced Linear Structures
Strings
Advanced Trees
Graphs
Memory Management
Out to the Disk
Part VI: Appendices
A. Review of Java
B. Unified Modeling Language
C. Summation Formulae
D. Further Reading
Index