Introduction to Java Programming and Data Structures, Comprehensive Version, 12th edition

  • Y Daniel Liang


NOTE: Before purchasing, check with your instructor to ensure you select the correct ISBN. Several versions of the MyLab™ and Mastering™ platforms exist for each title, and registrations are not transferable. To register for and use MyLab or Mastering, you may also need a Course ID, which your instructor will provide.


Used books, rentals, and purchases made outside of Pearson

If purchasing or renting from companies other than Pearson, the access codes for the MyLab platform may not be included, may be incorrect, or may be previously redeemed. Check with the seller before completing your purchase.

For courses in Java Programming.

This package includes MyLab Programming.

A fundamentals-first introduction to basic programming concepts and techniques                                                                 

Introduction to Java Programming and Data Structures seamlessly integrates programming, data structures, and algorithms into one text. With a fundamentals-first approach, the text builds a strong foundation of basic programming concepts and techniques before teaching students object-oriented programming and advanced Java programming. Liang explains programming in a problem-driven way that focuses on problem solving rather than syntax, illustrating basic concepts by example and providing a large number of exercises with various levels of difficulty for students to practice. The 12th Edition is completely revised in every detail to enhance clarity, presentation, content, examples, and exercises.

Personalize learning with MyLab Programming

By combining trusted author content with digital tools and a flexible platform, MyLab personalizes the learning experience and improves results for each student.With MyLab Programming, students work through hundreds of short, auto-graded coding exercises and receive immediate and helpful feedback based on their work.

0136519350 / 9780136519355 Introduction to Java Programming and Data Structures, Comprehensive Version Plus MyLab Programming with Pearson eText -- Access Card Package

Package consists of:

  • 0136520278 / 9780136520276 MyLab Programming with Pearson eText -- Standalone Access Card -- for Introduction to Java Programming and Data Structures, Comprehensive Version
  • 0136520235 / 9780136520238 Introduction to Java Programming and Data Structures, Comprehensive Version

Table of contents

1. Introduction to Computers, Programs, and JavaTM
2. Elementary Programming
3. Selections
4. Mathematical Functions, Characters, and Strings
5. Loops
6. Methods
7. Single-Dimensional Arrays
8. Multidimensional Arrays
9. Objects and Classes
10. Object-Oriented Thinking
11. Inheritance and Polymorphism
12. Exception Handling and Text I/O
13. Abstract Classes and Interfaces
14. JavaFX Basics
15. Event-Driven Programming and Animations
16. JavaFX UI Controls and Multimedia
17. Binary I/O
18. Recursion
19. Generics
20. Lists, Stacks, Queues, and Priority Queues
21. Sets and Maps
22. Developing Efficient Algorithms
23. Sorting
24. Implementing Lists, Stacks, Queues, and Priority Queues
25. Binary Search Trees
26. AVL Trees
27. Hashing
28. Graphs and Applications
29. Weighted Graphs and Applications
30. Aggregate Operations for Collection Streams

Bonus Chapters 31–44 are available from the Companion Website at

31. Advanced JavaFX and FXML

32. Multithreading and Parallel Programming

33. Networking

34. Java Database Programming

35. Advanced Database Programming

36. Internationalization

37. Servlets

38. JavaServer Pages

39. JavaServer Faces

40. RMI

41. Web Services

42. 2-4 Trees and B-Trees

43. Red-Black Trees

44. Testing Using JUnit


A. Java Keywords and Reserved Words
B. The ASCII Character Set
C. Operator Precedence Chart
D. Java Modifiers
E. Special Floating-Point Values
F. Number Systems
G. Bitwise Operations
H. Regular Expressions
I. Enumerated Types
J. The Big-O, Big-Omega, and Big-Theta Notations

Published by Pearson (June 19th 2020) - Copyright © 2020