|Algorithms and Data Structures|
There are quite a few about right now, but one that I have found interesting (recommended by Phil Kilby) is Thinking In Java by Bruce Eckel. Again, his book's on the web electronically! Go have a look. You can have a look at my copy if you want. I will refer to Eckel's book as TIJ (Thinking in Java).
Bruce Eckel has given me permission to make his book available to you from these web pages for this course at no cost. The book is excellent (only weakness is it lacks pictures). I bought a copy, and I think it is well worth having.
I also recommend Java in A Nutshell (JIAN) by David Flanagan, published by O'Reilly (isbn 1-56592-262-X).