Introduction to Java programming and data structures - Liang, Y. Daniel (Pearson Education, 2018)
Designed to support an introductory programming course, Introduction to Java Programming and Data Structures teaches you concepts of problem-solving and object-orientated programming using a fundamentals-first approach. Beginner programmers learn critical problem-solving techniques then move on to grasp the key concepts of object-oriented, GUI programming, data structures, and Web programming.