With Koffman and Wolfgang's Objects, Abstraction, Data Structures, and Design: Using Java, Version 5.0 you'll develop a thorough understanding of basic data structures and algorithms through an objects-first approach, as well as essential design skills and principles for those critical first steps in the software engineering process. Approximately 20 case studies show you how to apply those skills and principles to real world problems. Along the way, you'll gain an understanding of why different data structures are needed, the applications they are suited for, and the advantages and disadvantages of their possible implementations.
This is a must read for for new developers. It introduces the concepts and various implementations of classic data structures and sorting algorithms which build the foundations for a deeper understanding of the world of software development.
Very rudimentary. It shows basic uses of some data structures with Java, but not much more than that. Personally, I'd read a book on Java and one on data structures and complexity separately.