Java Software Structures takes a three-pronged approach to introducing data structures — conceptualization, explanation and implementation. With the help of case studies and tutorials, you’ll learn to develop high-quality software systems using well-designed collections and algorithms.