Please suggest me a Java book that contains challenging programming problems.
I don't know of such a book, but you can register an account at Projecteuler and solve the problems using Java.
Java Puzzlers by By Joshua Bloch and Neal Gafter. Here's the Amazon link.
Edit:
If you're looking for a book with Java programming exercises, perhaps you should go instead to Head First Java by Kathy Sierra and Bert Bates. Amazon link and Google Books Entry.
Not a book but may be of interest http://www.facebook.com/careers/puzzles.php
I learned java (transitioning from C++) using Deitel and Deitel's textbook: Java, How to Program. Each chapter would end with a collection of questions and projects that would use the skills picked up in that chapter. There was also an Advanced, Java How to Program if your current Java skills are too advanced for a beginner book.
Many college programming textbooks are set up this way. So, maybe swinging by the local college bookstore and seeing what textbook they use might help.