Correlation to the Previous Edition

This Book (11E) What's New Previous Book (10E)
Global Changes
  • The book's title is changed to Introduction to Java Programming, Comprehensive, Includes Data Structures to reflect reflect the fact that many of our instructors use this book in a data structures course. The book uses a practical approach to introduce design, implement, and use data structures and covers all topics in a typical data structures course. Additionally, it provides bonus chapters that covers advanced data structures such as 2-4 trees, B-trees, and red-black trees.
  • Updated to Java 8. Examples are improved and simplified by using the new features in Java 8.
  • The default and static methods are introduced for interfaces in Chapter 13.
  • The GUI chapters are updated to JavaFX 8. The examples are revised. The user interfaces in the examples and exercises are now resizable and displayed in the center of the window.
  • Inner classes, anonymous inner classes, and lambda expressions are covered using practical examples in Chapter 15.
  • More examples and exercises in the data structures chapters use Lambda expressions to simplify coding.
  • The forEach method is introduced in Chapter 20 as a simple alternative to the foreach loop for applying an action to each element in a collection.
  • Use the default methods for interfaces in Java 8 to redesign MyList, MyArrayList, MyLinkedList, Tree, BST, AVLTree, MyMap, MyHashMap, MySet, MyHashSet, Graph, UnweightedGraph, and WeightedGraph in Chapters 24-29.
  • Chapter 30 is brand new to introduce aggregate operations for collection streams.
  • The companion Website has been redesigned with new interactive quiz, checkpoint, animations, and live coding.
  • More than 200 additional programming exercises with solutions are provided to the instructor in the Companion Website. These exercises are not printed in the text.
  • The CheckPoint questions are renumbered by sections so that they can be easily identified.
 
Chapter 1 Introduction to Computers, Programs, and Java
  • Sections 1.2-1.5 are updated with new information.
  • Since applets are removed in Java, Section 1.5 is revised.
  • Both print and println statements are covered in Section 1.7.
Chapter 1
Chapter 2 Elementary Programming
  • Add a note on the warning for closing input from IDEs.
  • Use underscores to improve readabilities in a number literal in Section 2.10.1.
  • System.nanoTime() is introduced in Section 2.12 to return the current time in nano seconds.
Chapter 2
Chapter 3 Selections
  • Add several new check point questions.
  • Use the term conditional operator in Section 3.14.
Chapter 3
Chapter 4 Mathematical Functions, Characters, and Strings
  • The terms of token-based input and line-based input are introduced in Section 4.4.5. An important note tells students not to mix token-based input with line-based input to avoid input errors.
  • Displaying numbers with comma separators and display numbers with leading zeros are now covered in Section 4.6.
Chapter 4
Chapter 5 Loops
  • A large section 5.2 in the 10E is divided into four smaller new sections 5.2, 5.3, 5.4, and 5.5
  • New figures for Figures 5.1, 5.2, and 5.3.
Chapter 5
Chapter 6 Methods
  • New Hex2Dec case study.
Chapter 6
Chapter 7 Single-Dimensional Arrays
  • Pre- and post-conditions are discussed.
Chapter 7
Chapter 8 Multidimensional Arrays
Chapter 8
Chapter 9 Objects and Classes
  • Long name for various Circle classes are simplfied using Circle. For example, CircleWithPrivateDataFields is now called Circle.
  • The new SecureRandom is introduced in Section 9.6.2.
  • Section 9.14 on the this keyword is revised.
Chapter 9
Chapter 10 Thinking in Objects
  • Revised the composition relationship in Secton 10.4.2.
  • New exercises 10.14-10.15.
  • Removed the section on GuessBirthday class.
Chapter 10
Chapter 11 Inheritance and Polymorphism
  • Long name for various Circle classes are simplfied using Circle. For example, SimpleGeometricObject is now called GeometricObject.
  • The terms subtype and supertype are introduced early in Section 11.2.
Chapter 11
Chapter 12 Exception Handling and Text I/O
  • Token-based input vs. line-based input is discussed in Section 12.11.4.
Chapter 12
Chapter 13 Abstract Classes and Interfaces
  • Revised Listing 13.6.
  • Revised Listing 13.7.
  • introduced default and static methods in interfaces.
  • Revised Listing 13.11.
Chapter 13
Chapter 14 JavaFX Basics
  • Updated to JavaFX 8.
  • The Group class is introduced early on.
  • Overriding setWidth and setHeight methods to set proper size for the pane.
  • Every example in this section is revised to update the code to JavaFX 8.
Chapter 14
Chapter 15 Event-Driven Programming and Animations
  • Updated to JavaFX 8.
  • Teaching inner classes, anonymous inner classes, lambda expressions using practical examples.
  • Revised the section on lambda expressions using new examples.
  • Section 15.13 displays a US map using coordinates.
  • Every example in this section is revised to update the code to JavaFX 8.
Chapter 15
Chapter 16 JavaFX UI Controls
  • Updated to JavaFX 8.
  • Every example in this section is revised to update the code to JavaFX 8.
Chapter 16
Chapter 17 Binary I/O
  • The detailed description on UTF is moved to Supplement III.Z.
Chapter 17
Chapter 18 Recursion
Chapter 18
Chapter 19 Generics
Chapter 19
Chapter 20 Lists, Stacks, Queues, and Priority Queues
  • Add the forEach method in the Iterable interface in Figure 20.1.
  • Section 20.4 is new to introduce the forEach method.
  • Section 20.5 is expanded with additional examples for using the Comparator interface and lambda expressions for Comparator.
Chapter 20
Chapter 21 Sets and Maps
  • Use the forEach method to simplify the code in several examples.
Chapter 21
Chapter 22 Developing Efficient Algorithms
Chapter 22
Chapter 23 Sorting
Chapter 23
Chapter 24 Implementing Lists, Stacks, Queues, and Priority Queues
  • Redesign the MyList interface to extend Collection.
  • Use the forEach method to simplify the code in several examples.
  • Exercises are revised.
Chapter 24
Chapter 25 Binary Search Trees
  • Redesign the Tree interface to extend Collection.
  • Use the forEach method to simplify the code in several examples.
  • Exercises are revised.
Chapter 25
Chapter 26 AVL Trees
  • Examples and exercises are revised.
Chapter 26
Chapter 27 Hashing
  • Redesign MyHashSet to implement Collection.
  • Improved discussions for hashing
Chapter 27
Chapter 28 Graphs and Applications
  • Use adjacency edge lists to store edges Instead of using the adjacency vertex lists. This provides great flexibility in designing reusable code. The weighted edges in the next chapter can be stored using the same adjacency lists.
  • The new methods for adding vertices and adding edges.
  • All example source code are completely revised.
  • New exercises 28.17-28.25.
Chapter 28
Chapter 29 Weighted Graph Applications
  • Use adjacency edge list to store edges rather than using priority queues to simplify implementations of the MST and SP algorithms.
  • A new implementation for MST is provided to simplify presentation.
  • A new implementation for Shortest Path is provided to simplify presentation.
  • All example source code are completely revised.
  • New exercises 29.17-32.20.
Chapter 29
Chapter 30 Aggregate Operations on Collection Streams
  • New chapter
Chapter 31 Advanced JavaFX Programming and FXML
  • The builder classes are no longer supported in JavaFX 8. So it is removed from this chapter.
  • Examples do not use builder classes now.
  • A new section on FXML and Scene Builder
Chapter 34
Chapter 32 Multithreading and Parallel Programming
  • Use lambda expressions to simplify coding for threads.
  • Run code in the application thread using the Platform.runLater(Runnable).
Chapter 30
Chapter 33 Networking
Chapter 31
Chapter 34 Java Database Programming
Chapter 32
Chapter 35 Advanced Database Programming
Chapter 35
Chapter 36 Internationalization

 

Chapter 36
Chapter 37 Servlets
  • Updated Java EE 7.
Chapter 37
Chapter 38 JavaServer Pages
  • Updated Java EE 7.
Chapter 38
Chapter 39 Java Server Faces
  • Updated Java EE 7.
  • Section 39.10 Contexts and Dependency Injection is new.
Chapter 33
Chapter 40 RMI
  • New chapter
Chapter 41 Web Services
Chapter 39
Chapter 42 2-4 Trees and B-Treess
Chapter 40
Chapter 43 Red-Black Trees
Chapter 41
Chapter 44 Testing Using JUnit
Chapter 42