Satish,
I haven't read that version but "Data Structures and Algorithms" with the same general outline has been around for a long time. I had a text book with that title for an undergrad course in the early 70's, and found it very helpful one of the few books from that era that I still keep around.
I was surprised but it looks like one can download the whole book in pdf form from
http://uwu.weebly.com/uploads/4/0/6/3/4063810/data_structures_and_algorithms_in_java.pdf so others can see for themselves.
I see it as a good foundation to teach the concepts of the structure themselves, what they are, how to use them and how to implement them. I'm not sure how well it covers when it is appropriate to use which structure.
Your questions :
1. Given a data requirement which Java data structure to use
2. Reasons for choosing a data structure
are pretty good but I tend to see them as judgment calls more than training issues. For example the decision between a HashMap and TreeMap is usually irrelevant. Only when the maps get pretty big and are used quite a bit does the efficiency make a difference and then which one is better depends on the characteristics of the data and how you're going to access it.
Sorry for the rambling but it's an interesting topic for me and I don't have a yes or no answer to your question.
My recommendation is to try to read the book. Skip around and see what they are presenting, if it's interesting read it. The information is very good but it's not a how-to guide and it may not address the questions at the level you're looking for.
Joe