{"product_id":"java-concepts-isbn-9781119186717","title":"Java Concepts","description":"\u003cb\u003e\u003ci\u003eJava for Everyone, 3rd Edition\u003c\/i\u003e\u003c\/b\u003e offers comprehensive topical coverage, with varied examples and problems, application of visual component of fluid mechanics, and strong focus on effective learning. The text enables the gradual development of confidence in problem solving. Each important concept is introduced in easy-to understand terms before more complicated examples are discussed. This text is an unbound, three hole punched version. \u003cp\u003ePreface v\u003c\/p\u003e \u003cp\u003eSpecial Features xxvi\u003c\/p\u003e \u003cp\u003e\u003cb\u003e1 Introduction 1\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e1.1 Computer Programs 2\u003c\/p\u003e \u003cp\u003e1.2 The Anatomy of a Computer 3\u003c\/p\u003e \u003cp\u003e1.3 The Java Programming Language 6\u003c\/p\u003e \u003cp\u003e1.4 Becoming Familiar with Your Programming Environment 7\u003c\/p\u003e \u003cp\u003eVE1 Compiling and Running a Program\u003c\/p\u003e \u003cp\u003e1.5 Analyzing Your First Program 11\u003c\/p\u003e \u003cp\u003e1.6 Errors 14\u003c\/p\u003e \u003cp\u003e1.7 PROBLEM SOLVING Algorithm Design 15\u003c\/p\u003e \u003cp\u003eThe Algorithm Concept 16\u003c\/p\u003e \u003cp\u003eAn Algorithm for Solving an Investment Problem 17\u003c\/p\u003e \u003cp\u003ePseudocode 18\u003c\/p\u003e \u003cp\u003eFrom Algorithms to Programs 18\u003c\/p\u003e \u003cp\u003eHT1 Describing an Algorithm with Pseudocode 19\u003c\/p\u003e \u003cp\u003eWE1 Writing an Algorithm for Tiling a Floor 21\u003c\/p\u003e \u003cp\u003eVE2 Dividing Household Expenses\u003c\/p\u003e \u003cp\u003e\u003cb\u003e2 Fundamental Data Types 31\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e2.1 Variables 32\u003c\/p\u003e \u003cp\u003eVariable Declarations 32\u003c\/p\u003e \u003cp\u003eNumber Types 34\u003c\/p\u003e \u003cp\u003eVariable Names 35\u003c\/p\u003e \u003cp\u003eThe Assignment Statement 36\u003c\/p\u003e \u003cp\u003eConstants 37\u003c\/p\u003e \u003cp\u003eComments 37\u003c\/p\u003e \u003cp\u003eST1 Numeric Types in Java 41\u003c\/p\u003e \u003cp\u003eST2 Big Numbers 42\u003c\/p\u003e \u003cp\u003e2.2 Arithmetic 43\u003c\/p\u003e \u003cp\u003eArithmetic Operators 43\u003c\/p\u003e \u003cp\u003eIncrement and Decrement 43\u003c\/p\u003e \u003cp\u003eInteger Division and Remainder 44\u003c\/p\u003e \u003cp\u003ePowers and Roots 45\u003c\/p\u003e \u003cp\u003eConverting Floating-Point Numbers to Integers 46\u003c\/p\u003e \u003cp\u003eJ81 Avoiding Negative Remainders 49\u003c\/p\u003e \u003cp\u003eST3 Combining Assignment and Arithmetic 49\u003c\/p\u003e \u003cp\u003eVE1 Using Integer Division\u003c\/p\u003e \u003cp\u003e2.3 Input and Output 50\u003c\/p\u003e \u003cp\u003eReading Input 50\u003c\/p\u003e \u003cp\u003eFormatted Output 52\u003c\/p\u003e \u003cp\u003eHT1 Carrying Out Computations 56\u003c\/p\u003e \u003cp\u003eWE1 Computing the Cost of Stamps\u003c\/p\u003e \u003cp\u003e2.4 PROBLEM SOLVING First Do it By Hand 59\u003c\/p\u003e \u003cp\u003eWE2 Computing Travel Time\u003c\/p\u003e \u003cp\u003e2.5 Strings 61\u003c\/p\u003e \u003cp\u003eThe String Type 61\u003c\/p\u003e \u003cp\u003eConcatenation 61\u003c\/p\u003e \u003cp\u003eString Input 62\u003c\/p\u003e \u003cp\u003eEscape Sequences 62\u003c\/p\u003e \u003cp\u003eStrings and Characters 63\u003c\/p\u003e \u003cp\u003eSubstrings 63\u003c\/p\u003e \u003cp\u003eST4 Instance Methods and Static Methods 66\u003c\/p\u003e \u003cp\u003eST5 Using Dialog Boxes for Input and Output 67\u003c\/p\u003e \u003cp\u003eVE2 Computing Distances on Earth\u003c\/p\u003e \u003cp\u003e\u003cb\u003e3 Decisions 83\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e3.1 The if Statement 84\u003c\/p\u003e \u003cp\u003eST1 The Conditional Operator 89\u003c\/p\u003e \u003cp\u003e3.2 Comparing Numbers and Strings 90\u003c\/p\u003e \u003cp\u003eST2 Lexicographic Ordering of Strings 94\u003c\/p\u003e \u003cp\u003eHT1 Implementing an if Statement 95\u003c\/p\u003e \u003cp\u003eWE1 Extracting the Middle\u003c\/p\u003e \u003cp\u003e3.3 Multiple Alternatives 98\u003c\/p\u003e \u003cp\u003eST3 The switch Statement 101\u003c\/p\u003e \u003cp\u003e3.4 Nested Branches 102\u003c\/p\u003e \u003cp\u003eST4 Enumeration Types 107\u003c\/p\u003e \u003cp\u003eVE1 Computing the Plural of an English Word\u003c\/p\u003e \u003cp\u003e3.5 PROBLEM SOLVING Flowcharts 107\u003c\/p\u003e \u003cp\u003e3.6 PROBLEM SOLVING Test Cases 110\u003c\/p\u003e \u003cp\u003eST5 Logging 112\u003c\/p\u003e \u003cp\u003e3.7 Boolean Variables and Operators 113\u003c\/p\u003e \u003cp\u003eST6 Short-Circuit Evaluation of Boolean Operators 116\u003c\/p\u003e \u003cp\u003eST7 De Morgan’s Law 117\u003c\/p\u003e \u003cp\u003e3.8 APPLICATION Input Validation 118\u003c\/p\u003e \u003cp\u003eVE2 The Genetic Code\u003c\/p\u003e \u003cp\u003e\u003cb\u003e4 Loops 142\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e4.1 The while Loop 142\u003c\/p\u003e \u003cp\u003e4.2 PROBLEM SOLVING Hand-Tracing 149\u003c\/p\u003e \u003cp\u003e4.3 The for Loop 152\u003c\/p\u003e \u003cp\u003e4.4 The do Loop 158\u003c\/p\u003e \u003cp\u003e4.5 APPLICATION Processing Sentinel Values 160\u003c\/p\u003e \u003cp\u003eST1 The “Loop and a Half” Problem and the break Statement 162\u003c\/p\u003e \u003cp\u003eST2 Redirection of Input and Output 163\u003c\/p\u003e \u003cp\u003eVE1 Evaluating a Cell Phone Plan\u003c\/p\u003e \u003cp\u003e4.6 PROBLEM SOLVING Storyboards 164\u003c\/p\u003e \u003cp\u003e4.7 Common Loop Algorithms 167\u003c\/p\u003e \u003cp\u003eSum and Average Value 167\u003c\/p\u003e \u003cp\u003eCounting Matches 167\u003c\/p\u003e \u003cp\u003eFinding the First Match 168\u003c\/p\u003e \u003cp\u003ePrompting Until a Match is Found 169\u003c\/p\u003e \u003cp\u003eMaximum and Minimum 169\u003c\/p\u003e \u003cp\u003eComparing Adjacent Values 170\u003c\/p\u003e \u003cp\u003eHT1 Writing a Loop 171\u003c\/p\u003e \u003cp\u003eWE1 Credit Card Processing\u003c\/p\u003e \u003cp\u003e4.8 Nested Loops 174\u003c\/p\u003e \u003cp\u003eWE2 Manipulating the Pixels in an Image\u003c\/p\u003e \u003cp\u003e4.9 PROBLEM SOLVING Solve a Simpler Problem First 178\u003c\/p\u003e \u003cp\u003e4.10 APPLICATION Random Numbers and Simulations 182\u003c\/p\u003e \u003cp\u003eGenerating Random Numbers 182\u003c\/p\u003e \u003cp\u003eSimulating Die Tosses 183\u003c\/p\u003e \u003cp\u003eThe Monte Carlo Method 184\u003c\/p\u003e \u003cp\u003eST3 Drawing Graphical Shapes 186\u003c\/p\u003e \u003cp\u003eVE1 Drawing a Spiral\u003c\/p\u003e \u003cp\u003e\u003cb\u003e5 Methods 211\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e5.1 Methods as Black Boxes 212\u003c\/p\u003e \u003cp\u003e5.2 Implementing Methods 214\u003c\/p\u003e \u003cp\u003e5.3 Parameter Passing 217\u003c\/p\u003e \u003cp\u003e5.4 Return Values 220\u003c\/p\u003e \u003cp\u003eHT1 Implementing a Method 222\u003c\/p\u003e \u003cp\u003eWE1 Generating Random Passwords\u003c\/p\u003e \u003cp\u003e5.5 Methods Without Return Values 224\u003c\/p\u003e \u003cp\u003e5.6 PROBLEM SOLVING Reusable Methods 225\u003c\/p\u003e \u003cp\u003e5.7 PROBLEM SOLVING Stepwise Refinement 229\u003c\/p\u003e \u003cp\u003eWE2 Calculating a Course Grade\u003c\/p\u003e \u003cp\u003e5.8 Variable Scope 236\u003c\/p\u003e \u003cp\u003eVE1 Debugging\u003c\/p\u003e \u003cp\u003e5.9 Recursive Methods (Optional) 240\u003c\/p\u003e \u003cp\u003eHT2 Thinking Recursively 243\u003c\/p\u003e \u003cp\u003eVE2 Fully Justified Text\u003c\/p\u003e \u003cp\u003e\u003cb\u003e6 Arrays and Array Lists 261\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e6.1 Arrays 262\u003c\/p\u003e \u003cp\u003eDeclaring and Using Arrays 262\u003c\/p\u003e \u003cp\u003eArray References 265\u003c\/p\u003e \u003cp\u003ePartially Filled Arrays 266\u003c\/p\u003e \u003cp\u003e6.2 The Enhanced for Loop 269\u003c\/p\u003e \u003cp\u003e6.3 Common Array Algorithms 270\u003c\/p\u003e \u003cp\u003eFilling 270\u003c\/p\u003e \u003cp\u003eSum and Average Value 271\u003c\/p\u003e \u003cp\u003eMaximum and Minimum 271\u003c\/p\u003e \u003cp\u003eElement Separators 271\u003c\/p\u003e \u003cp\u003eLinear Search 272\u003c\/p\u003e \u003cp\u003eRemoving an Element 272\u003c\/p\u003e \u003cp\u003eInserting an Element 273\u003c\/p\u003e \u003cp\u003eSwapping Elements 274\u003c\/p\u003e \u003cp\u003eCopying Arrays 275\u003c\/p\u003e \u003cp\u003eReading Input 276\u003c\/p\u003e \u003cp\u003eST1 Sorting with the Java Library 279\u003c\/p\u003e \u003cp\u003eST2 Binary Search 279\u003c\/p\u003e \u003cp\u003e6.4 Using Arrays with Methods 280\u003c\/p\u003e \u003cp\u003eST3 Methods with a Variable Number of Parameters 284\u003c\/p\u003e \u003cp\u003e6.5 PROBLEM SOLVING Adapting Algorithms 284\u003c\/p\u003e \u003cp\u003eHT1 Working with Arrays 287\u003c\/p\u003e \u003cp\u003eWE1 Rolling the Dice\u003c\/p\u003e \u003cp\u003e6.6 PROBLEM SOLVING Discovering Algorithms by Manipulating Physical Objects 291\u003c\/p\u003e \u003cp\u003eVE1 Removing Duplicates from an Array\u003c\/p\u003e \u003cp\u003e6.7 Two-Dimensional Arrays 294\u003c\/p\u003e \u003cp\u003eDeclaring Two-Dimensional Arrays 295\u003c\/p\u003e \u003cp\u003eAccessing Elements 295\u003c\/p\u003e \u003cp\u003eLocating Neighboring Elements 296\u003c\/p\u003e \u003cp\u003eComputing Row and Column Totals 297\u003c\/p\u003e \u003cp\u003eTwo-Dimensional Array Parameters 298\u003c\/p\u003e \u003cp\u003eWE2 A World Population Table\u003c\/p\u003e \u003cp\u003eST4 Two-Dimensional Arrays with Variable Row Lengths 300\u003c\/p\u003e \u003cp\u003eST5 Multidimensional Arrays 301\u003c\/p\u003e \u003cp\u003e6.8 Array Lists 301\u003c\/p\u003e \u003cp\u003eDeclaring and Using Array Lists 302\u003c\/p\u003e \u003cp\u003eUsing the Enhanced for Loop with Array Lists 304\u003c\/p\u003e \u003cp\u003eCopying Array Lists 305\u003c\/p\u003e \u003cp\u003eArray Lists and Methods 305\u003c\/p\u003e \u003cp\u003eWrappers and Auto-boxing 305\u003c\/p\u003e \u003cp\u003eUsing Array Algorithms with Array Lists 307\u003c\/p\u003e \u003cp\u003eStoring Input Values in an Array List 307\u003c\/p\u003e \u003cp\u003eRemoving Matches 307\u003c\/p\u003e \u003cp\u003eChoosing Between Array Lists and Arrays 308\u003c\/p\u003e \u003cp\u003eST6 The Diamond Syntax 311\u003c\/p\u003e \u003cp\u003eVE2 Game of Life\u003c\/p\u003e \u003cp\u003e\u003cb\u003e7 Input\/Output and Exception Handling 331\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e7.1 Reading and Writing Text Files 332\u003c\/p\u003e \u003cp\u003eST1 Reading Web Pages 335\u003c\/p\u003e \u003cp\u003eST2 File Dialog Boxes 335\u003c\/p\u003e \u003cp\u003eST3 Reading and Writing Binary Data 336\u003c\/p\u003e \u003cp\u003e7.2 Text Input and Output 337\u003c\/p\u003e \u003cp\u003eReading Words 337\u003c\/p\u003e \u003cp\u003eReading Characters 338\u003c\/p\u003e \u003cp\u003eClassifying Characters 338\u003c\/p\u003e \u003cp\u003eReading Lines 339\u003c\/p\u003e \u003cp\u003eScanning a String 340\u003c\/p\u003e \u003cp\u003eConverting Strings to Numbers 340\u003c\/p\u003e \u003cp\u003eAvoiding Errors When Reading Numbers 340\u003c\/p\u003e \u003cp\u003eMixing Number, Word, and Line Input 341\u003c\/p\u003e \u003cp\u003eFormatting Output 342\u003c\/p\u003e \u003cp\u003eST4 Regular Expressions 344\u003c\/p\u003e \u003cp\u003eST5 Reading an Entire File 344\u003c\/p\u003e \u003cp\u003eVE1 Computing a Document’s Readability\u003c\/p\u003e \u003cp\u003e7.3 Command Line Arguments 345\u003c\/p\u003e \u003cp\u003eHT1 Processing Text Files 348\u003c\/p\u003e \u003cp\u003eWE1 Analyzing Baby Names\u003c\/p\u003e \u003cp\u003e7.4 Exception Handling 352\u003c\/p\u003e \u003cp\u003eThrowing Exceptions 352\u003c\/p\u003e \u003cp\u003eCatching Exceptions 354\u003c\/p\u003e \u003cp\u003eChecked Exceptions 355\u003c\/p\u003e \u003cp\u003eClosing Resources 357\u003c\/p\u003e \u003cp\u003eST6 Assertions 360\u003c\/p\u003e \u003cp\u003eST7 The try\/finally Statement 360\u003c\/p\u003e \u003cp\u003e7.5 APPLICATION Handling Input Errors 361\u003c\/p\u003e \u003cp\u003eVE2 Detecting Accounting Fraud\u003c\/p\u003e \u003cp\u003e\u003cb\u003e8 Objects and Classes 375\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e8.1 Object-Oriented Programming 376\u003c\/p\u003e \u003cp\u003e8.2 Implementing a Simple Class 378\u003c\/p\u003e \u003cp\u003e8.3 Specifying the Public Interface of a Class 381\u003c\/p\u003e \u003cp\u003eST1 The javadoc Utility 384\u003c\/p\u003e \u003cp\u003e8.4 Designing the Data Representation 385\u003c\/p\u003e \u003cp\u003e8.5 Implementing Instance Methods 386\u003c\/p\u003e \u003cp\u003e8.6 Constructors 389\u003c\/p\u003e \u003cp\u003eST2 Overloading 393\u003c\/p\u003e \u003cp\u003e8.7 Testing a Class 393\u003c\/p\u003e \u003cp\u003eHT1 Implementing a Class 395\u003c\/p\u003e \u003cp\u003eWE1 Implementing a Menu Class\u003c\/p\u003e \u003cp\u003eVE1 Paying Off a Loan\u003c\/p\u003e \u003cp\u003e8.8 Problem Solving: Tracing Objects 399\u003c\/p\u003e \u003cp\u003e8.9 Object References 403\u003c\/p\u003e \u003cp\u003eShared References 403\u003c\/p\u003e \u003cp\u003eThe null Reference 405\u003c\/p\u003e \u003cp\u003eThe this Reference 405\u003c\/p\u003e \u003cp\u003eST3 Calling One Constructor from Another 408\u003c\/p\u003e \u003cp\u003e8.10 Static Variables and Methods 408\u003c\/p\u003e \u003cp\u003e8.11 PROBLEM SOLVING Patterns for Object Data 410\u003c\/p\u003e \u003cp\u003eKeeping a Total 411\u003c\/p\u003e \u003cp\u003eCounting Events 411\u003c\/p\u003e \u003cp\u003eCollecting Values 412\u003c\/p\u003e \u003cp\u003eManaging Properties of an Object 413\u003c\/p\u003e \u003cp\u003eModeling Objects with Distinct States 413\u003c\/p\u003e \u003cp\u003eDescribing the Position of an Object 414\u003c\/p\u003e \u003cp\u003eVE2 Modeling a Robot Escaping from a Maze\u003c\/p\u003e \u003cp\u003e8.12 Packages 417\u003c\/p\u003e \u003cp\u003eOrganizing Related Classes into Packages 417\u003c\/p\u003e \u003cp\u003eImporting Packages 418\u003c\/p\u003e \u003cp\u003ePackage Names 419\u003c\/p\u003e \u003cp\u003ePackages and Source Files 419\u003c\/p\u003e \u003cp\u003eST4 Package Access 421\u003c\/p\u003e \u003cp\u003eHT2 Programming with Packages 421\u003c\/p\u003e \u003cp\u003e\u003cb\u003e9 Inheritance and Interfaces 437\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e9.1 Inheritance Hierarchies 438\u003c\/p\u003e \u003cp\u003e9.2 Implementing Subclasses 442\u003c\/p\u003e \u003cp\u003e9.3 Overriding Methods 446\u003c\/p\u003e \u003cp\u003eST1 Calling the Superclass Constructor 451\u003c\/p\u003e \u003cp\u003e9.4 Polymorphism 452\u003c\/p\u003e \u003cp\u003eST2 Dynamic Method Lookup and the Implicit Parameter 455\u003c\/p\u003e \u003cp\u003eST3 Abstract Classes 456\u003c\/p\u003e \u003cp\u003eST4 Final Methods and Classes 457\u003c\/p\u003e \u003cp\u003eST5 Protected Access 458\u003c\/p\u003e \u003cp\u003eHT1 Developing an Inheritance Hierarchy 458\u003c\/p\u003e \u003cp\u003eWE1 Implementing an Employee Hierarchy for Payroll Processing\u003c\/p\u003e \u003cp\u003eVE1 Building a Discussion Board\u003c\/p\u003e \u003cp\u003e9.5 Object: The Cosmic Superclass 463\u003c\/p\u003e \u003cp\u003eOverriding the toString Method 464\u003c\/p\u003e \u003cp\u003eThe equals Method 465\u003c\/p\u003e \u003cp\u003eThe instanceof Operator 466\u003c\/p\u003e \u003cp\u003eST6 Inheritance and the toString Method 468\u003c\/p\u003e \u003cp\u003eST7 Inheritance and the equals Method 469\u003c\/p\u003e \u003cp\u003e9.6 Interface Types 470\u003c\/p\u003e \u003cp\u003eDefining an Interface 470\u003c\/p\u003e \u003cp\u003eImplementing an Interface 472\u003c\/p\u003e \u003cp\u003eThe Comparable Interface 474\u003c\/p\u003e \u003cp\u003eST8 Constants in Interfaces 476\u003c\/p\u003e \u003cp\u003eST9 Generic Interface Types 476\u003c\/p\u003e \u003cp\u003eJ81 Static Methods in Interfaces 477\u003c\/p\u003e \u003cp\u003eJ82 Default Methods 477\u003c\/p\u003e \u003cp\u003eST10 Function Objects 478\u003c\/p\u003e \u003cp\u003eJ83 Lambda Expressions 479\u003c\/p\u003e \u003cp\u003eWE2 Investigating Number Sequences\u003c\/p\u003e \u003cp\u003eVE2 Drawing Geometric Shapes\u003c\/p\u003e \u003cp\u003e\u003cb\u003e10 Graphical User Interfaces 493\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e10.1 Frame Windows 494\u003c\/p\u003e \u003cp\u003eDisplaying a Frame 494\u003c\/p\u003e \u003cp\u003eAdding User-Interface Components to a Frame 495\u003c\/p\u003e \u003cp\u003eUsing Inheritance to Customize Frames 497\u003c\/p\u003e \u003cp\u003eST1 Adding the main Method to the Frame Class 498\u003c\/p\u003e \u003cp\u003e10.2 Events and Event Handling 498\u003c\/p\u003e \u003cp\u003eListening to Events 499\u003c\/p\u003e \u003cp\u003eUsing Inner Classes for Listeners 501\u003c\/p\u003e \u003cp\u003eAPPLICATION Showing Growth of an Investment 503\u003c\/p\u003e \u003cp\u003eST2 Local Inner Classes 507\u003c\/p\u003e \u003cp\u003eST3 Anonymous Inner Classes 508\u003c\/p\u003e \u003cp\u003eJ81 Lambda Expressions for Event Handling 509\u003c\/p\u003e \u003cp\u003e10.3 Processing Text Input 509\u003c\/p\u003e \u003cp\u003eText Fields 509\u003c\/p\u003e \u003cp\u003eText Areas 511\u003c\/p\u003e \u003cp\u003e10.4 Creating Drawings 515\u003c\/p\u003e \u003cp\u003eDrawing on a Component 515\u003c\/p\u003e \u003cp\u003eOvals, Lines, Text, and Color 517\u003c\/p\u003e \u003cp\u003eAPPLICATION Visualizing the Growth of an Investment 520\u003c\/p\u003e \u003cp\u003eHT1 Drawing Graphical Shapes 525\u003c\/p\u003e \u003cp\u003eWE1 Coding a Bar Chart Creator\u003c\/p\u003e \u003cp\u003eVE1 Solving Crossword Puzzles\u003c\/p\u003e \u003cp\u003e\u003cb\u003e11 Advanced User Interfaces (Web Only)\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e11.1 Layout Management\u003c\/p\u003e \u003cp\u003e11.2 Choices\u003c\/p\u003e \u003cp\u003eRadio Buttons\u003c\/p\u003e \u003cp\u003eCheck Boxes\u003c\/p\u003e \u003cp\u003eCombo Boxes\u003c\/p\u003e \u003cp\u003eHT1 Laying Out a User Interface\u003c\/p\u003e \u003cp\u003eWE1 Programming a Working Calculator\u003c\/p\u003e \u003cp\u003e11.3 Menus\u003c\/p\u003e \u003cp\u003e11.4 Exploring the Swing Documentation\u003c\/p\u003e \u003cp\u003e11.5 Using Timer Events for Animations\u003c\/p\u003e \u003cp\u003e11.6 Mouse Events\u003c\/p\u003e \u003cp\u003eST1 Keyboard Events\u003c\/p\u003e \u003cp\u003eST2 Event Adapters\u003c\/p\u003e \u003cp\u003eWE2 Adding Mouse and Keyboard Support to the Bar Chart Creator\u003c\/p\u003e \u003cp\u003eVE1 Designing a Baby Naming Program\u003c\/p\u003e \u003cp\u003e\u003cb\u003e12 Object-Oriented Design (Web Only)\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e12.1 Classes and Their Responsibilities\u003c\/p\u003e \u003cp\u003eDiscovering Classes\u003c\/p\u003e \u003cp\u003eThe CRC Card Method\u003c\/p\u003e \u003cp\u003eCohesion\u003c\/p\u003e \u003cp\u003e12.2 Relationships Between Classes\u003c\/p\u003e \u003cp\u003eDependency\u003c\/p\u003e \u003cp\u003eAggregation\u003c\/p\u003e \u003cp\u003eInheritance\u003c\/p\u003e \u003cp\u003eHT1 Using CRC Cards and UML Diagrams in Program Design\u003c\/p\u003e \u003cp\u003eST1 Attributes and Methods in UML Diagrams\u003c\/p\u003e \u003cp\u003eST2 Multiplicities\u003c\/p\u003e \u003cp\u003eST3 Aggregation, Association, and Composition\u003c\/p\u003e \u003cp\u003e12.3 APPLICATION Printing an Invoice\u003c\/p\u003e \u003cp\u003eRequirements\u003c\/p\u003e \u003cp\u003eCRC Cards\u003c\/p\u003e \u003cp\u003eUML Diagrams\u003c\/p\u003e \u003cp\u003eMethod Documentation\u003c\/p\u003e \u003cp\u003eImplementation\u003c\/p\u003e \u003cp\u003eWE1 Simulating an Automatic Teller Machine\u003c\/p\u003e \u003cp\u003e\u003cb\u003e13 Recursion (Web Only)\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e13.1 Triangle Numbers\u003c\/p\u003e \u003cp\u003eHT1 Thinking Recursively\u003c\/p\u003e \u003cp\u003eWE1 Finding Files\u003c\/p\u003e \u003cp\u003e13.2 Recursive Helper Methods\u003c\/p\u003e \u003cp\u003e13.3 The Efficiency of Recursion\u003c\/p\u003e \u003cp\u003e13.4 Permutations\u003c\/p\u003e \u003cp\u003e13.5 Mutual Recursion\u003c\/p\u003e \u003cp\u003e13.6 Backtracking\u003c\/p\u003e \u003cp\u003eWE2 Towers of Hanoi\u003c\/p\u003e \u003cp\u003e\u003cb\u003e14 Sorting and Searching (Web Only)\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e14.1 Selection Sort\u003c\/p\u003e \u003cp\u003e14.2 Profiling the Selection Sort Algorithm\u003c\/p\u003e \u003cp\u003e14.3 Analyzing the Performance of the Selection Sort Algorithm\u003c\/p\u003e \u003cp\u003eST1 Oh, Omega, and Theta\u003c\/p\u003e \u003cp\u003eST2 Insertion Sort\u003c\/p\u003e \u003cp\u003e14.4 Merge Sort\u003c\/p\u003e \u003cp\u003e14.5 Analyzing the Merge Sort Algorithm\u003c\/p\u003e \u003cp\u003eST3 The Quicksort Algorithm\u003c\/p\u003e \u003cp\u003e14.6 Searching\u003c\/p\u003e \u003cp\u003eLinear Search\u003c\/p\u003e \u003cp\u003eBinary Search\u003c\/p\u003e \u003cp\u003e14.7 PROBLEM SOLVING Estimating the Running Time of an Algorithm\u003c\/p\u003e \u003cp\u003eLinear Time\u003c\/p\u003e \u003cp\u003eQuadratic Time\u003c\/p\u003e \u003cp\u003eThe Triangle Pattern\u003c\/p\u003e \u003cp\u003eLogarithmic Time\u003c\/p\u003e \u003cp\u003e14.8 Sorting and Searching in the Java Library\u003c\/p\u003e \u003cp\u003eSorting\u003c\/p\u003e \u003cp\u003eBinary Search\u003c\/p\u003e \u003cp\u003eComparing Objects\u003c\/p\u003e \u003cp\u003eST4 The Comparator Interface\u003c\/p\u003e \u003cp\u003eJ81 Comparators with Lambda Expressions\u003c\/p\u003e \u003cp\u003eWE1 Enhancing the Insertion Sort Algorithm\u003c\/p\u003e \u003cp\u003e\u003cb\u003e15 The JAVA Collections Framework (Web Only)\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e15.1 An Overview of the Collections Framework\u003c\/p\u003e \u003cp\u003e15.2 Linked Lists\u003c\/p\u003e \u003cp\u003eThe Structure of Linked Lists\u003c\/p\u003e \u003cp\u003eThe LinkedList Class of the Java\u003c\/p\u003e \u003cp\u003eCollections Framework\u003c\/p\u003e \u003cp\u003eList Iterators\u003c\/p\u003e \u003cp\u003e15.3 Sets\u003c\/p\u003e \u003cp\u003eChoosing a Set Implementation\u003c\/p\u003e \u003cp\u003eWorking with Sets\u003c\/p\u003e \u003cp\u003e15.4 Maps\u003c\/p\u003e \u003cp\u003eJ81 Updating Map Entries\u003c\/p\u003e \u003cp\u003eHT1 Choosing a Collection\u003c\/p\u003e \u003cp\u003eWE1 Word Frequency\u003c\/p\u003e \u003cp\u003eST1 Hash Functions\u003c\/p\u003e \u003cp\u003e15.5 Stacks, Queues, and Priority Queues\u003c\/p\u003e \u003cp\u003eStacks\u003c\/p\u003e \u003cp\u003eQueues\u003c\/p\u003e \u003cp\u003ePriority Queues\u003c\/p\u003e \u003cp\u003e15.6 Stack and Queue Applications\u003c\/p\u003e \u003cp\u003eBalancing Parentheses\u003c\/p\u003e \u003cp\u003eEvaluating Reverse Polish Expressions\u003c\/p\u003e \u003cp\u003eEvaluating Algebraic Expressions\u003c\/p\u003e \u003cp\u003eBacktracking\u003c\/p\u003e \u003cp\u003eWE2 Simulating a Queue of Waiting Customers\u003c\/p\u003e \u003cp\u003eVE1 Building a Table of Contents\u003c\/p\u003e \u003cp\u003eST2 Reverse Polish Notation\u003c\/p\u003e \u003cp\u003eAppendix A The Basic Latin and Latin-1 Subsets of Unicode A-1\u003c\/p\u003e \u003cp\u003eAppendix B JAVA Operator Summary A-5\u003c\/p\u003e \u003cp\u003eAppendix C JAVA Reserved Word Summary A-7\u003c\/p\u003e \u003cp\u003eAppendix D The JAVA Library A-9\u003c\/p\u003e \u003cp\u003eAppendix E JAVA Language Coding Guidelines\u003c\/p\u003e \u003cp\u003eAppendix F Tool Summary\u003c\/p\u003e \u003cp\u003eAppendix G Number Systems\u003c\/p\u003e \u003cp\u003eAppendix H UML Summary\u003c\/p\u003e \u003cp\u003eAppendix I JAVA Syntax Summary\u003c\/p\u003e \u003cp\u003eAppendix J HTML Summary\u003c\/p\u003e \u003cp\u003eGlossary G-1\u003c\/p\u003e \u003cp\u003eIndex I-1\u003c\/p\u003e \u003cp\u003eCredits C-1\u003c\/p\u003e","brand":"Wiley","offers":[{"title":"Default Title","offer_id":47989488419045,"sku":"NP9781119186717","price":111.0,"currency_code":"USD","in_stock":false}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/1842\/7735\/files\/9781119186717.jpg?v=1761784308","url":"https:\/\/k12savings.com\/products\/java-concepts-isbn-9781119186717","provider":"K12savings","version":"1.0","type":"link"}