Test bank for big java early objects 6th edition by horstmann

Page 1

Test bank for Big Java: Early Objects 6th Edition

Full version at:

https://testbankbell.com/product/test-bank-for-big-java-early-objects-6th-edition-byhorstmann/

Description:

Cay Horstmann's sixth edition of Big Java, Early Objects provides an approachable introduction to fundamental programming techniques and design skills, helping students master basic concepts and become competent coders. Updates for the Java 8 software release and additional visual design elements make this student-friendly text even more engaging. The text is known for its realistic programming examples, great quantity and variety of homework assignments, and programming exercises that build student problem-solving abilities. This edition now includes problem solving sections, more example code online, and exercise from Science and Business.

ISBN-10 : 1119056446

ISBN-13 : 978-1119056447

Table of contents:

Title Page

Getting the Most from Big Java, Early Objects, 6e About the InterActivities

Source Code

Report a Problem

New to this Edition

A Tour of the Book Content Overview

List of Features

Walkthrough of the Learning Aids

Acknowledgments

Quick Reference

1. Introduction

1.1 Computer Programs

InterActivities

1.2 The Anatomy of a Computer InterActivities

Computing & Society 1.1 Computers Are Everywhere

1.3 The Java Programming Language InterActivities

1.4 Becoming Familiar with Your Programming Environment InterActivities

Programming Tip 1.1

Backup Copies

1.5 Analyzing Your First Program

Syntax 1.1 Java Program

InterActivities

More InterActivities

Common Error 1.1

Omitting Semicolons

1.6 Errors

InterActivities

Common Error 1.2

Misspelling Words

1.7 Problem Solving: Algorithm Design

1.7.1 The Algorithm Concept

1.7.2 An Algorithm for Solving an Investment Problem

1.7.3 Pseudocode

1.7.4 From Algorithms to Programs

InterActivities

How To 1.1

Describing an Algorithm with Pseudocode

Worked Example 1.1

Writing an Algorithm for Tiling a Floor

Chapter Summary

Review Exercises

Practice Exercises

Programming Projects

2. Using Objects

2.1 Objects and Classes

2.1.1 Using Objects

2.1.2 Classes

InterActivities

2.2 Variables

2.2.1 Variable Declarations

Syntax 2.1 Variable Declaration InterActivities

2.2.2 Types InterActivities

2.2.3 Names

InterActivities

2.2.4 Comments InterActivities

2.2.5 Assignment

Syntax 2.2 Assignment

InterActivities

More InterActivities

Common Error 2.1

Using Undeclared or Uninitialized Variables

Common Error 2.2

Confusing Variable Declarations and Assignment Statements

Programming Tip 2.1

Choose Descriptive Variable Names

2.3 Calling Methods

2.3.1 The Public Interface of a Class

2.3.2 Method Arguments

2.3.3 Return Values

2.3.4 Method Declarations

InterActivities

Programming Tip 2.2

Learn By Trying

2.4 Constructing Objects

Syntax 2.3 Object Construction

InterActivities

Common Error 2.3

Trying to Invoke a Constructor Like a Method

2.5 Accessor and Mutator Methods

InterActivities

2.6 The API Documentation

2.6.1 Browsing the API Documentation

2.6.2 Packages

Syntax 2.4 Importing a Class from a Package InterActivities

Programming Tip 2.3

Don’t Memorize Use Online Help

2.7 Implementing a Test Program (Testing Track)

InterActivities

More InterActivities

Special Topic 2.1

Testing Classes in an Interactive Environment

Worked Example 2.1

How Many Days Have You Been Alive?

Worked Example 2.2

Working with Pictures

2.8 Object References

InterActivities

Computing & Society 2.1 Computer Monopoly

2.9 Graphical Applications (Graphics Track)

2.9.1 Frame Windows

2.9.2 Drawing on a Component

2.9.3 Displaying a Component in a Frame InterActivities

More InterActivities

2.10 Ellipses, Lines, Text, and Color (Graphics Track)

2.10.1 Ellipses and Circles

2.10.2 Lines

2.10.3 Drawing Text

2.10.4 Colors

InterActivities

More InterActivities

Chapter Summary

Review Exercises

Practice Exercises

Programming Projects

3. Implementing Classes

3.1 Instance Variables and Encapsulation

3.1.1 Instance Variables

Syntax 3.1 Instance Variable Declaration

3.1.2 The Methods of the Counter Class

3.1.3 Encapsulation

InterActivities

3.2 Specifying the Public Interface of a Class

3.2.1 Specifying Methods

3.2.2 Specifying Constructors

Syntax 3.2 Class Declaration

3.2.3 Using the Public Interface

3.2.4 Commenting the Public Interface

InterActivities

Common Error 3.1

Declaring a Constructor as void

Programming Tip 3.1

The javadoc Utility

3.3 Providing the Class Implementation

3.3.1 Providing Instance Variables

3.3.2 Providing Constructors

3.3.3 Providing Methods

InterActivities

More InterActivities

Common Error 3.2

Ignoring Parameter Variables

How To 3.1

Implementing a Class

Worked Example 3.1

Making a Simple Menu

3.4 Unit Testing (Testing Track)

InterActivities

Computing & Society 3.1 Electronic Voting Machines

3.5 Problem Solving: Tracing Objects

InterActivities

3.6 Local Variables

InterActivities

Common Error 3.3

Duplicating Instance Variables in Local Variables

Common Error 3.4

Providing Unnecessary Instance Variables

Common Error 3.5

Forgetting to Initialize Object References in a Constructor

3.7 The this Reference

InterActivities

Special Topic 3.1

Calling One Constructor from Another

3.8 Shape Classes (Graphics Track)

InterActivities

More InterActivities

How To 3.2

Drawing Graphical Shapes

Chapter Summary

Review Exercises

Practice Exercises

Programming Projects

4. Fundamental Data Types

4.1 Numbers

4.1.1 Number Types

4.1.2 Constants

Syntax 4.1 Constant Declaration

InterActivities

Special Topic 4.1

Big Numbers

Programming Tip 4.1

Do Not Use Magic Numbers

4.2 Arithmetic

4.2.1 Arithmetic Operators

4.2.2 Increment and Decrement

4.2.3 Integer Division and Remainder

4.2.4 Powers and Roots

4.2.5 Converting Floating-Point Numbers to Integers

Syntax 4.2 Cast InterActivities

More InterActivities

Common Error 4.1

Unintended Integer Division

Common Error 4.2

Unbalanced Parentheses

Programming Tip 4.2

Spaces in Expressions

Java 8 Note 4.1

Avoiding Negative Remainders

Special Topic 4.2

Combining Assignment and Arithmetic

Special Topic 4.3

Instance Methods and Static Methods

Computing & Society 4.1 The Pentium Floating-Point Bug

4.3 Input and Output

4.3.1 Reading Input

Syntax 4.3 Input Statement

4.3.2 Formatted Output

InterActivities

More InterActivities

How To 4.1

Carrying Out Computations

Worked Example 4.1

Computing the Volume and Surface Area of a Pyramid

4.4 Problem Solving: First Do It By Hand

InterActivities

More InterActivities

Worked Example 4.2

Computing Travel Time

4.5 Strings

4.5.1 The String Type

4.5.2 Concatenation

4.5.3 String Input

4.5.4 Escape Sequences

4.5.5 Strings and Characters

4.5.6 Substrings

InterActivities

More InterActivities

Programming Tip 4.3

Reading Exception Reports

Special Topic 4.4

Using Dialog Boxes for Input and Output

Computing & Society 4.2 International Alphabets and Unicode

Chapter Summary

Review Exercises

Practice Exercises

Programming Projects

5. Decisions

5.1 The if Statement

Syntax 5.1 if Statement

InterActivities

More InterActivities

Programming Tip 5.1

Brace Layout

Programming Tip 5.2

Always Use Braces

Common Error 5.1

A Semicolon After the if Condition

Programming Tip 5.3

Tabs

Special Topic 5.1

The Conditional Operator

Programming Tip 5.4

Avoid Duplication in Branches

5.2 Comparing Values

5.2.1 Relational Operators

Syntax 5.2 Comparisons

5.2.2 Comparing Floating-Point Numbers

5.2.3 Comparing Strings

5.2.4 Comparing Objects

5.2.5 Testing for null

InterActivities

More InterActivities

Common Error 5.2

Using == to Compare Strings

How To 5.1

Implementing an if Statement

Worked Example 5.1

Extracting the Middle

Computing & Society 5.1 Denver’s Luggage Handling System

5.3 Multiple Alternatives

InterActivities

More InterActivities

Special Topic 5.2

The switch Statement

5.4 Nested Branches

InterActivities

More InterActivities

Programming Tip 5.5

Hand-Tracing

Common Error 5.3

The Dangling else Problem

Special Topic 5.3

Block Scope

Special Topic 5.4

Enumeration Types

5.5 Problem Solving: Flowcharts

InterActivities

5.6 Problem Solving: Selecting Test Cases (Testing Track)

InterActivities

Programming Tip 5.6

Make a Schedule and Make Time for Unexpected Problems

Special Topic 5.5

Logging

5.7 Boolean Variables and Operators

InterActivities

More InterActivities

Common Error 5.4

Combining Multiple Relational Operators

Common Error 5.5

Confusing && and || Conditions

Special Topic 5.6

Short-Circuit Evaluation of Boolean Operators

Special Topic 5.7

De Morgan’s Law

5.8 Application: Input Validation

InterActivities

More InterActivities

Computing & Society 5.2 Artificial Intelligence

Chapter Summary

Review Exercises

Practice Exercises

Programming Projects

6. Loops

6.1 The while Loop

Syntax 6.1 while Statement

InterActivities

More InterActivities

Common Error 6.1

Don’t Think “Are We There Yet?”

Common Error 6.2

Infinite Loops

Common Error 6.3

Off-by-One Errors

6.2 Problem Solving: Hand-Tracing

InterActivities

More InterActivities

Computing & Society 6.1 Digital Piracy

6.3 The for Loop

Syntax 6.2 for Statement

InterActivities

More InterActivities

Programming Tip 6.1

Use for Loops for Their Intended Purpose Only

Programming Tip 6.2

Choose Loop Bounds That Match Your Task

Programming Tip 6.3

Count Iterations

Special Topic 6.1

Variables Declared in a for Loop Header

6.4 The do Loop

InterActivities

More InterActivities

Programming Tip 6.4

Flowcharts for Loops

6.5 Application: Processing Sentinel Values

InterActivities

More InterActivities

Special Topic 6.2

Redirection of Input and Output

Special Topic 6.3

The “Loop and a Half” Problem

Special Topic 6.4

The break and continue Statements

6.6 Problem Solving: Storyboards InterActivities

More InterActivities

6.7 Common Loop Algorithms

6.7.1 Sum and Average Value InterActivities

6.7.2 Counting Matches

InterActivities

More InterActivities

6.7.3 Finding the First Match

InterActivities

More InterActivities

6.7.4 Prompting Until a Match is Found

InterActivities

6.7.5 Maximum and Minimum

InterActivities

6.7.6 Comparing Adjacent Values

InterActivities

More InterActivities

How To 6.1

Writing a Loop

Worked Example 6.1

Credit Card Processing

6.8 Nested Loops

InterActivities

Worked Example 6.2

Manipulating the Pixels in an Image

6.9 Application: Random Numbers and Simulations

6.9.1 Generating Random Numbers

InterActivities

6.9.2 The Monte Carlo Method

InterActivities

More InterActivities

6.10 Using a Debugger (Testing Track)

InterActivities

How To 6.2

Debugging

Worked Example 6.3

A Sample Debugging Session

Computing & Society 6.2 The First Bug

Chapter Summary

Review Exercises

Practice Exercises

Programming Projects

7. Arrays and Array Lists

7.1 Arrays

7.1.1 Declaring and Using Arrays

Syntax 7.1 Arrays

InterActivities

More InterActivities

7.1.2 Array References InterActivities

7.1.3 Using Arrays with Methods

7.1.4 Partially Filled Arrays

InterActivities

More InterActivities

Common Error 7.1

Bounds Errors

Common Error 7.2

Uninitialized and Unfilled Arrays

Programming Tip 7.1

Use Arrays for Sequences of Related Items

Programming Tip 7.2

Make Parallel Arrays into Arrays of Objects

Special Topic 7.1

Methods with a Variable Number of Arguments

Computing & Society 7.1 Computer Viruses

7.2 The Enhanced for Loop

Syntax 7.2 The Enhanced for Loop InterActivities

7.3 Common Array Algorithms

7.3.1 Filling InterActivities

More InterActivities

7.3.2 Sum and Average Value InterActivities

7.3.3 Maximum and Minimum InterActivities

7.3.4 Element Separators

7.3.5 Linear Search InterActivities

More InterActivities

7.3.6 Removing an Element InterActivities

7.3.7 Inserting an Element InterActivities

7.3.8 Swapping Elements InterActivities

7.3.9 Copying Arrays InterActivities

More InterActivities

7.3.10 Reading Input

Common Error 7.3

Underestimating the Size of a Data Set

Special Topic 7.2

Sorting with the Java Library

7.4 Problem Solving: Adapting Algorithms

InterActivities

More InterActivities

How To 7.1

Working with Arrays

Worked Example 7.1

Rolling the Dice

7.5 Problem Solving: Discovering Algorithms by Manipulating Physical Objects

InterActivities

7.6 Two-Dimensional Arrays

7.6.1 Declaring Two-Dimensional Arrays

Syntax 7.3 Two-Dimensional Array Declaration

InterActivities

7.6.2 Accessing Elements

InterActivities

7.6.3 Locating Neighboring Elements

More InterActivities

7.6.4 Accessing Rows and Columns

InterActivities

More InterActivities

Worked Example 7.2

A World Population Table

Special Topic 7.3

Two-Dimensional Arrays with Variable Row Lengths

Special Topic 7.4

Multidimensional Arrays

7.7 Array Lists

Syntax 7.4 Array Lists

7.7.1 Declaring and Using Array Lists

InterActivities

7.7.2 Using the Enhanced for Loop with Array Lists

InterActivities

More InterActivities

7.7.3 Copying Array Lists

InterActivities

More InterActivities

7.7.4 Wrappers and Auto-boxing

InterActivities

More InterActivities

7.7.5 Using Array Algorithms with Array Lists

InterActivities

More InterActivities

7.7.6 Storing Input Values in an Array List

More InterActivities

7.7.7 Removing Matches

More InterActivities

7.7.8 Choosing Between Array Lists and Arrays

Common Error 7.4

Length and Size

Special Topic 7.5

The Diamond Syntax

7.8 Regression Testing (Testing Track)

Programming Tip 7.3

Batch Files and Shell Scripts

Computing & Society 7.2 The Therac-25 Incidents

Chapter Summary

Review Exercises

Practice Exercises

Programming Projects

8. Designing Classes

8.1 Discovering Classes

InterActivities

8.2 Designing Good Methods

8.2.1 Providing a Cohesive Public Interface

8.2.2 Minimizing Dependencies

8.2.3 Separating Accessors and Mutators

8.2.4 Minimizing Side Effects

InterActivities

More InterActivities

Programming Tip 8.1

Consistency

Special Topic 8.1

Call by Value and Call by Reference

8.3 Problem Solving: Patterns for Object Data

8.3.1 Keeping a Total

8.3.2 Counting Events

8.3.3 Collecting Values

8.3.4 Managing Properties of an Object

8.3.5 Modeling Objects with Distinct States

8.3.6 Describing the Position of an Object

InterActivities

More InterActivities

8.4 Static Variables and Methods

InterActivities

More InterActivities

Programming Tip 8.2

Minimize the Use of Static Methods

Common Error 8.1

Trying to Access Instance Variables in Static Methods

Special Topic 8.2

Alternative Forms of Instance and Static Variable Initialization

Special Topic 8.3

Static Imports

8.5 Problem Solving: Solve a Simpler Problem First InterActivities

8.6 Packages

8.6.1 Organizing Related Classes into Pack-ages

8.6.2 Importing Packages

8.6.3 Package Names

Syntax 8.1 Package Specification

8.6.4 Packages and Source Files

InterActivities

Common Error 8.2

Confusing Dots

Special Topic 8.4

Package Access

How To 8.1

Programming with Packages

8.7 Unit Test Frameworks (Testing Track)

InterActivities

More InterActivities

Computing & Society 8.1 Personal Computing

Chapter Summary

Review Exercises

Practice Exercises

Programming Projects

9. Inheritance

9.1 Inheritance Hierarchies

InterActivities

Programming Tip 9.1

Use a Single Class for Variation in Values, Inheritance for Variation in Behavior

9.2 Implementing Subclasses

Syntax 9.1 Subclass Declaration

InterActivities

More InterActivities

Common Error 9.1

Replicating Instance Variables from the Superclass

Common Error 9.2

Confusing Super- and Subclasses

9.3 Overriding Methods

Syntax 9.2 Calling a Superclass Method

InterActivities

More InterActivities

Common Error 9.3

Accidental Overloading

Common Error 9.4

Forgetting to Use super When Invoking a Superclass Method

Special Topic 9.1

Calling the Superclass Constructor

Syntax 9.3 Constructor with Superclass Initializer

9.4 Polymorphism

InterActivities

More InterActivities

Special Topic 9.2

Dynamic Method Lookup and the Implicit Parameter

Special Topic 9.3

Abstract Classes

Special Topic 9.4

Final Methods and Classes

Special Topic 9.5

Protected Access

How To 9.1

Developing an Inheritance Hierarchy

Worked Example 9.1

Implementing an Employee Hierarchy for Payroll Processing

9.5 Object: The Cosmic Superclass

9.5.1 Overriding the toString Method

InterActivities

More InterActivities

9.5.2 The equals Method

InterActivities

More InterActivities

9.5.3 The instanceof Operator

Syntax 9.4 The instanceof Operator

InterActivities

Common Error 9.5

Don’t Use Type Tests

Special Topic 9.6

Inheritance and the toString Method

Special Topic 9.7

Inheritance and the equals Method

Computing & Society 9.1 Who Controls the Internet?

Chapter Summary

Review Exercises

Practice Exercises

Programming Projects

10. Interfaces

10.1 Using Interfaces for Algorithm Reuse

10.1.1 Discovering an Interface Type

10.1.2 Declaring an Interface Type

Syntax 10.1 Declaring an Interface

10.1.3 Implementing an Interface Type

Syntax 10.2 Implementing an Interface

10.1.4 Comparing Interfaces and Inheritance

InterActivities

More InterActivities

Common Error 10.1

Forgetting to Declare Implementing Methods as Public

Common Error 10.2

Trying to Instantiate an Interface

Special Topic 10.1

Constants in Interfaces

Java 8 Note 10.1

Static Methods in Interfaces

Java 8 Note 10.2

Default Methods

Java 8 Note 10.3

Conflicting Default Methods

10.2 Working with Interface Types

10.2.1 Converting from Classes to Interfaces

10.2.2 Invoking Methods on Interface Variables

10.2.3 Casting from Interfaces to Classes

InterActivities

More InterActivities

Worked Example 10.1

Investigating Number Sequences

10.3 The Comparable Interface

InterActivities

More InterActivities

Programming Tip 10.1

Comparing Integers and Floating-Point Numbers

Special Topic 10.2

The clone Method and the Cloneable Interface

10.4 Using Interfaces for Callbacks

InterActivities

Java 8 Note 10.4

Lambda Expressions

Special Topic 10.3

Generic Interface Types

10.5 Inner Classes

InterActivities

Special Topic 10.4

Anonymous Classes

10.6 Mock Objects (Testing Track)

InterActivities

10.7 Event Handling (Graphics Track)

10.7.1 Listening to Events

10.7.2 Using Inner Classes for Listeners

InterActivities

Common Error 10.3

Modifying Parameter Types in the Implementing Method

Common Error 10.4

Trying to Call Listener Methods

Java 8 Note 10.5

Lambda Expressions for Event Handling

10.8 Building Applications with Buttons (Graphics Track)

InterActivities

Common Error 10.5

Forgetting to Attach a Listener

Programming Tip 10.2

Don’t Use a Container as a Listener

10.9 Processing Timer Events (Graphics Track)

InterActivities

Common Error 10.6

Forgetting to Repaint

10.10 Mouse Events (Graphics Track)

InterActivities

Special Topic 10.5

Keyboard Events

Special Topic 10.6

Event Adapters

Computing & Society 10.1 Open Source and Free Software

Chapter Summary

Review Exercises

Practice Exercises

Programming Projects

11. Input/Output and Exception Handling

11.1 Reading and Writing Text Files

InterActivities

More InterActivities

Common Error 11.1

Backslashes in File Names

Common Error 11.2

Constructing a Scanner with a String

Special Topic 11.1

Reading Web Pages

Special Topic 11.2

File Dialog Boxes

Special Topic 11.3

Character Encodings

11.2 Text Input and Output

11.2.1 Reading Words

InterActivities

11.2.2 Reading Characters

InterActivities

More InterActivities

11.2.3 Classifying Characters

InterActivities

More InterActivities

11.2.4 Reading Lines

InterActivities

11.2.5 Scanning a String InterActivities

More InterActivities

11.2.6 Converting Strings to Numbers InterActivities

More InterActivities

11.2.7 Avoiding Errors When Reading Numbers

InterActivities

More InterActivities

11.2.8 Mixing Number, Word, and Line Input

InterActivities

More InterActivities

11.2.9 Formatting Output

InterActivities

Special Topic 11.4

Regular Expressions

Special Topic 11.5

Reading an Entire File

11.3 Command Line Arguments

InterActivities

More InterActivities

How To 11.1

Processing Text Files

Worked Example 11.1

Analyzing Baby Names

Computing & Society 11.1 Encryption Algorithms

11.4 Exception Handling

11.4.1 Throwing Exceptions

Syntax 11.1 Throwing an Exception InterActivities

More InterActivities

11.4.2 Catching Exceptions

Syntax 11.2 Catching Exceptions

InterActivities

More InterActivities

11.4.3 Checked Exceptions

Syntax 11.3 The throws Clause InterActivities

11.4.4 Closing Resources

Syntax 11.4 The try-with-resources Statement

InterActivities

11.4.5 Designing Your Own Exception Types

Programming Tip 11.1

Throw Early, Catch Late

Programming Tip 11.2

Do Not Squelch Exceptions

Programming Tip 11.3

Do Throw Specific Exceptions

Special Topic 11.6

Assertions

Special Topic 11.7

The try/finally Statement

11.5 Application: Handling Input Errors

Computing & Society 11.2 The Ariane Rocket Incident

Chapter Summary

Review Exercises

Practice Exercises

Programming Projects

12. Object-Oriented Design

12.1 Classes and Their Responsibilities

12.1.1 Discovering Classes

12.1.2 The CRC Card Method

InterActivities

12.2 Relationships Between Classes

12.2.1 Dependency

12.2.2 Aggregation

12.2.3 Inheritance

InterActivities

How To 12.1

Using CRC Cards and UML Diagrams in Program Design

Special Topic 12.1

Attributes and Methods in UML Diagrams

Special Topic 12.2

Multiplicities

Special Topic 12.3

Aggregation, Association, and Composition

12.3 Application: Printing an Invoice

12.3.1 Requirements

12.3.2 CRC Cards

12.3.3 UML Diagrams

12.3.4 Method Documentation

12.3.5 Implementation

InterActivities

Computing & Society 12.1 Databases and Privacy

Worked Example 12.1

Simulating an Automatic Teller Machine

Chapter Summary

Review Exercises

Practice Exercises

Programming Projects

13. Recursion

13.1 Triangle Numbers

InterActivities

Common Error 13.1

Infinite Recursion

Common Error 13.2

Tracing Through Recursive Methods

How To 13.1

Thinking Recursively

Worked Example 13.1

Finding Files

13.2 Recursive Helper Methods

InterActivities

13.3 The Efficiency of Recursion

InterActivities

13.4 Permutations

InterActivities

Computing & Society 13.1 The Limits of Computation

13.5 Mutual Recursion

InterActivities

13.6 Backtracking

InterActivities

Worked Example 13.2

Towers of Hanoi Chapter Summary

Review Exercises

Practice Exercises

Programming Projects

14. Sorting and Searching

14.1 Selection Sort

InterActivities

14.2 Profiling the Selection Sort Algorithm

InterActivities

14.3 Analyzing the Performance of the Selection Sort Algorithm

InterActivities

Special Topic 14.1

Oh, Omega, and Theta

Special Topic 14.2

Insertion Sort

14.4 Merge Sort

InterActivities

14.5 Analyzing the Merge Sort Algorithm

InterActivities

Special Topic 14.3

The Quicksort Algorithm

14.6 Searching

14.6.1 Linear Search

14.6.2 Binary Search

InterActivities

Computing & Society 14.1 The First Programmer

14.7 Problem Solving: Estimating the Running Time of an Algorithm

14.7.1 Linear Time

14.7.2 Quadratic Time

14.7.3 The Triangle Pattern

14.7.4 Logarithmic Time

InterActivities

14.8 Sorting and Searching in the Java Library

14.8.1 Sorting

14.8.2 Binary Search

14.8.3 Comparing Objects

InterActivities

Common Error 14.1

The compareTo Method Can Return Any Integer, Not Just –1, 0, and 1

Special Topic 14.4

The Comparator Interface

Java 8 Note 14.1

Comparators with Lambda Expressions

Worked Example 14.1

Enhancing the Insertion Sort Algorithm

Chapter Summary

Review Exercises

Practice Exercises

Programming Projects

15. The Java Collections Framework

15.1 An Overview of the Collections Framework

InterActivities

15.2 Linked Lists

15.2.1 The Structure of Linked Lists

15.2.2 The LinkedList Class of the Java Collections Framework

15.2.3 List Iterators

InterActivities

Computing & Society 15.1 Standardization

15.3 Sets

15.3.1 Choosing a Set Implementation

15.3.2 Working with Sets

InterActivities

Programming Tip 15.1

Use Interface References to Manipulate Data Structures

15.4 Maps

InterActivities

Java 8 Note 15.1

Updating Map Entries

How To 15.1

Choosing a Collection

Worked Example 15.1

Word Frequency

Special Topic 15.1

Hash Functions

15.5 Stacks, Queues, and Priority Queues

15.5.1 Stacks

15.5.2 Queues

15.5.3 Priority Queues

InterActivities

15.6 Stack and Queue Applications

15.6.1 Balancing Parentheses

15.6.2 Evaluating Reverse Polish Expressions

15.6.3 Evaluating Algebraic Expressions

15.6.4 Backtracking

InterActivities

Worked Example 15.2

Simulating a Queue of Waiting Customers

Special Topic 15.2

Reverse Polish Notation

Chapter Summary

Review Exercises

Practice Exercises

Programming Projects

16. Basic Data Structures

16.1 Implementing Linked Lists

16.1.1 The Node Class

16.1.2 Adding and Removing the First Element

16.1.3 The Iterator Class

16.1.4 Advancing an Iterator

16.1.5 Removing an Element

16.1.6 Adding an Element

16.1.7 Setting an Element to a Different Value

16.1.8 Efficiency of Linked List Operations

InterActivities

Special Topic 16.1

Static Classes

Worked Example 16.1

Implementing a Doubly-Linked List

16.2 Implementing Array Lists

16.2.1 Getting and Setting Elements

16.2.2 Removing or Adding Elements

16.2.3 Growing the Internal Array

InterActivities

16.3 Implementing Stacks and Queues

16.3.2 Stacks as Arrays

16.3.3 Queues as Linked Lists

16.3.4 Queues as Circular Arrays

InterActivities

16.4 Implementing a Hash Table

16.4.1 Hash Codes

16.4.2 Hash Tables

16.4.3 Finding an Element

16.4.4 Adding and Removing Elements

16.4.5 Iterating over a Hash Table

InterActivities

Special Topic 16.2

Open Addressing

Chapter Summary

Review Exercises

Practice Exercises

Programming Projects

17. Tree Structures

17.1 Basic Tree Concepts

InterActivities

17.2 Binary Trees

17.2.1 Binary Tree Examples

17.2.2 Balanced Trees

17.2.3 A Binary Tree Implementation

InterActivities

Worked Example 17.1

Building a Huffman Tree

17.3 Binary Search Trees

17.3.1 The Binary Search Property

17.3.2 Insertion

17.3.3 Removal

17.3.4 Efficiency of the Operations

InterActivities

17.4 Tree Traversal

17.4.1 Inorder Traversal

17.4.2 Preorder and Postorder Traversals

17.4.3 The Visitor Pattern

17.4.4 Depth-First and Breadth-First Search

17.4.5 Tree Iterators

InterActivities

17.5 Red-Black Trees

17.5.1 Basic Properties of Red-Black Trees

17.5.2 Insertion

17.5.3 Removal

Worked Example 17.2

Implementing a Red-Black Tree

17.6 Heaps

17.7 The Heapsort Algorithm

Chapter Summary

Review Exercises

Practice Exercises

Programming Projects

18. Generic Classes

18.1 Generic Classes and Type Parameters

InterActivities

18.2 Implementing Generic Types

Syntax 18.1 Declaring a Generic Class

InterActivities

18.3 Generic Methods

Syntax 18.2 Declaring a Generic Method

InterActivities

18.4 Constraining Type Parameters

InterActivities

Common Error 18.1

Genericity and Inheritance

Common Error 18.2

The Array Store Exception

Special Topic 18.1

Wildcard Types

18.5 Type Erasure

InterActivities

Common Error 18.3

Using Generic Types in a Static Context

Special Topic 18.2

Reflection

Worked Example 18.1

Making a Generic Binary Search Tree Class

Chapter Summary

Review Exercises

Practice Exercises

Programming Projects

19. Stream Processing

19.1 The Stream Concept

InterActivities

19.2 Producing Streams

InterActivities

19.3 Collecting Results

InterActivities

Programming Tip 19.1

One Stream Operation Per Line

Special Topic 19.1

Infinite Streams

19.4 Transforming Streams

InterActivities

Common Error 19.1

Don’t Use a Terminated Stream

19.5 Lambda Expressions

Syntax 19.1 Lambda Expressions

InterActivities

Programming Tip 19.2

Keep Lambda Expressions Short

Special Topic 19.2

Method and Constructor References

Special Topic 19.3

Higher-Order Functions

Special Topic 19.4

Higher-Order Functions and Comparators

19.6 The Optional Type

InterActivities

Common Error 19.2

Optional Results Without Values

19.7 Other Terminal Operations

InterActivities

Common Error 19.3

Don’t Apply Mutations in Parallel Stream Operations

19.8 Primitive-Type Streams

19.8.1 Creating Primitive-Type Streams

19.8.2 Mapping a Primitive-Type Stream

19.8.3 Processing Primitive-Type Streams

InterActivities

19.9 Grouping Results

InterActivities

19.10 Common Algorithms Revisited

19.10.1 Filling

19.10.2 Sum, Average, Maximum, and Minimum

19.10.3 Counting Matches

19.10.4 Element Separators

19.10.5 Linear Search

19.10.6 Comparing Adjacent Values

InterActivities

How To 19.1

Working with Streams

Worked Example 19.1

Word Properties

Worked Example 19.2

A Movie Database

Chapter Summary

Review Exercises

Practice Exercises

Programming Projects

20. Graphical User Interfaces

20.1 Layout Management

20.1.1 Using Layout Managers

20.1.2 Achieving Complex Layouts

20.1.3 Using Inheritance to Customize Frames

Common Error 20.1

By Default, Components Have Zero Width and Height

Special Topic 20.1

Adding the main Method to the Frame Class

20.2 Processing Text Input

20.2.1 Text Fields

20.2.2 Text Areas

20.3 Choices

20.3.1 Radio Buttons

20.3.2 Check Boxes

20.3.3 Combo Boxes

How To 20.1

Laying Out a User Interface

Worked Example 20.1

Programming a Working Calculator

Programming Tip 20.1

Use a GUI Builder

20.4 Menus

20.5 Exploring the Swing Documentation

Chapter Summary

Review Exercises

Practice Exercises

Programming Projects

21. Advanced Input/Output

21.1 Readers, Writers, and Input/Output Streams

21.2 Binary Input and Output

Common Error 21.1

Negative byte Values

21.3 Random Access

21.4 Object Input and Output Streams

How To 21.1

Choosing a File Format

21.5 File and Directory Operations

21.5.1 Paths

21.5.2 Creating and Deleting Files and Directories

21.5.3 Useful File Operations

21.5.4 Visiting Directories

Chapter Summary

Review Exercises

Practice Exercises

Programming Projects

22. Multithreading

22.1 Running Threads

Programming Tip 22.1

Use the Runnable Interface

Special Topic 22.1

Thread Pools

22.2 Terminating Threads

Programming Tip 22.2

Check for Thread Interruptions in the run Method of a Thread

22.3 Race Conditions

22.4 Synchronizing Object Access

22.5 Avoiding Deadlocks

Common Error 22.1

Calling await Without Calling signalAll

Common Error 22.2

Calling signalAll Without Locking the Object

Special Topic 22.2

Object Locks and Synchronized Methods

Special Topic 22.3

The Java Memory Model

22.6 Application: Algorithm Animation

Chapter Summary

Review Exercises

Practice Exercises

Programming Projects

23. Internet Networking

23.1 The Internet Protocol

23.2 Application Level Protocols

23.3 A Client Program

23.4 A Server Program

How To 23.1

Designing Client/Server Programs

23.5 URL Connections

Programming Tip 23.1

Use High-Level Libraries

Chapter Summary

Review Exercises

Practice Exercises

Programming Projects

24. Relational Databases

24.1 Organizing Database Information

24.1.1 Database Tables

24.1.2 Linking Tables

24.1.3 Implementing Multi-Valued Relation-ships

Programming Tip 24.1

Stick with the Standard

Programming Tip 24.2

Avoid Unnecessary Data Replication

Programming Tip 24.3

Don’t Replicate Columns in a Table

Special Topic 24.1

Primary Keys and Indexes

24.2 Queries

24.2.1 Simple Queries

24.2.2 Selecting Columns

24.2.3 Selecting Subsets

24.2.4 Calculations

24.2.5 Joins

24.2.6 Updating and Deleting Data

Common Error 24.1

Joining Tables Without Specifying a Link Condition

24.3 Installing a Database

24.4 Database Programming in Java

24.4.1 Connecting to the Database

24.4.2 Executing SQL Statements

24.4.3 Analyzing Query Results

24.4.4 Result Set Metadata

Common Error 24.2

Constructing Queries from Arbitrary Strings

Programming Tip 24.4

Don’t Hardwire Database Connection Parameters into Your Program

Programming Tip 24.5

Let the Database Do the Work

24.5 Application: Entering an Invoice

Special Topic 24.2

Transactions

Special Topic 24.3

Object-Relational Mapping

Worked Example 24.1

Programming a Bank Database

Chapter Summary

Review Exercises

Practice Exercises

Programming Projects

25. XML

25.1 XML Tags and Documents

25.1.1 Advantages of XML

25.1.2 Differences Between XML and HTML

25.1.3 The Structure of an XML Document

How To 25.1

Designing an XML Document Format

Programming Tip 25.1

Prefer XML Elements over Attributes

Programming Tip 25.2

Avoid Children with Mixed Elements and Text

25.2 Parsing XML Documents

Common Error 25.1

XML Elements Describe Objects, Not Classes

25.3 Creating XML Documents

How To 25.2

Writing an XML Document

Special Topic 25.1

Grammars, Parsers, and Compilers

25.4 Validating XML Documents

25.4.1 Document Type Definitions

25.4.2 Specifying a DTD in an XML Document

25.4.3 Parsing and Validation

How To 25.3

Writing a DTD

Special Topic 25.2

Schema Languages

Special Topic 25.3

Other XML Technologies

Chapter Summary

Review Exercises

Practice Exercises

Programming Projects

26. Web Applications

26.1 The Architecture of a Web Application

26.2 The Architecture of a JSF Application

26.2.1 JSF Pages

26.2.2 Managed Beans

26.2.3 Separation of Presentation and Business Logic

26.2.4 Deploying a JSF Application

Special Topic 26.1

Session State and Cookies

26.3 JavaBeans Components

26.4 Navigation Between Pages

How To 26.1

Designing a Managed Bean

26.5 JSF Components

26.6 A Three-Tier Application

Special Topic 26.2

AJAX

Chapter Summary

Review Exercises

Practice Exercises

Programming Projects

APPENDIX A: THE BASIC LATIN AND LATIN-1 SUBSETS OF UNICODE

APPENDIX B: JAVA OPERATOR SUMMARY

APPENDIX C: JAVA RESERVED WORD SUMMARY

APPENDIX D: THE JAVA LIBRARY

Package java.awt

Package java.awt.event

Package java.awt.geom

Package java.io

Package java.lang

Package java.math

Package java.net

Package java.nio.file

Package java.sql

Package java.text

Package java.util

Package java.util.concurrent.locks

Package java.util.function

Package java.util.logging

Package java.util.stream

Package javax.sql

Package javax.swing

Package javax.swing.border

Package javax.swing.event

Package javax.swing.text

Package javax.xml.parsers

Package javax.xml.xpath

Package org.w3c.dom

Package org.w3c.dom.ls

APPENDIX E: JAVA LANGUAGE CODING GUIDELINES

Introduction

Source Files

Classes

Methods

Variables and Constants

Control Flow

Lexical Issues

APPENDIX F: TOOL SUMMARY

The Java Compiler

The Java Virtual Machine Launcher

The JAR Tool

APPENDIX G: NUMBER SYSTEMS

Binary Numbers

Overflow and Roundoff Errors

Two’s Complement Integers

IEEE Floating-Point Numbers

Hexadecimal Numbers

Bit and Shift Operations

APPENDIX H: UML SUMMARY

CRC Cards

UML Diagrams

APPENDIX I: JAVA SYNTAX SUMMARY

Types

Variables

Expressions

Classes

Interfaces

Enumeration Types

Methods

Constructors

Statements

Exceptions

Packages

Generic Types and Methods

Comments

APPENDIX J: HTML SUMMARY

A Brief Introduction to HTML

Illustration Credits

Wiley End User License Agreement

Turn static files into dynamic content formats.

Create a flipbook
Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.