Hi,
I have tried to ranked them on this page with links to book errata when possible depending on what edition you get.
http://www.levteck.com/JavaCertBooks/JavaCertBooks.htm Nobody mentioned the "Java 2 Exam Cram" book by Bill Brogden which is excellent also. Try to get the latest Edition (2 Edition).
Also when buying a book on the shelf try to get the latest printing within the same edition.
You will quickly notice on the errata pages that errors get corrected as they reprint a book.
Here is how to find what printing level a book is at. The higher the better!
How to find which printing you have.
Find the page at the front of the book with small prints and which has the copywrite info, the ISBN, etc.
Find the line with a row of numbers: 10 9 8 7 6 5 ...
Let the last number in this row be n.
If n is greater than 1, your printing is (n-1).
If n is 1, you have the first printing.
Cheers,
Mario