{"product_id":"big-java-9781119588887","title":"Big Java","description":"\u003cb\u003eBook Synopsis\u003c\/b\u003e\u003cbr\u003e\u003cp\u003e\u003cb\u003e\u003ci\u003eBig Java: Early Objects, 7e\u003c\/i\u003e\u003c\/b\u003e focuses on the essentials of effective learning and is suitable for a two-semester introduction to programming sequence. The text requires no prior programming experience and only a modest amount of high school algebra. Objects and classes from the standard library are used where appropriate in early sections with coverage on object oriented design starting in Chapter 8. This gradual approach allows students to use objects throughout their study of the core algorithmic topics, without teaching bad habits that must be un-learned later. The second half covers algorithms and data structures at a level suitable for beginning students.\u003c\/p\u003e\u003cbr\u003e\u003cbr\u003e\u003cb\u003eTable of Contents\u003c\/b\u003e\u003cbr\u003e\u003cp\u003ePreface iii\u003c\/p\u003e \u003cp\u003eSpecial Features xxiv\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 5\u003c\/p\u003e \u003cp\u003e1.4 Becoming Familiar with Your Programming Environment 7\u003c\/p\u003e \u003cp\u003e1.5 Analyzing Your First Program 11\u003c\/p\u003e \u003cp\u003e1.6 Errors 13\u003c\/p\u003e \u003cp\u003e1.7 PROBLEM SOLVING Algorithm Design 15\u003c\/p\u003e \u003cp\u003eThe Algorithm Concept 15\u003c\/p\u003e \u003cp\u003eAn Algorithm for Solving an Investment Problem 16\u003c\/p\u003e \u003cp\u003ePseudocode 17\u003c\/p\u003e \u003cp\u003eFrom Algorithms to Programs 18\u003c\/p\u003e \u003cp\u003e\u003cb\u003e2 Using Objects 23\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e2.1 Objects and Classes 24\u003c\/p\u003e \u003cp\u003eUsing Objects 24\u003c\/p\u003e \u003cp\u003eClasses 25\u003c\/p\u003e \u003cp\u003e2.2 Variables 26\u003c\/p\u003e \u003cp\u003eVariable Declarations 26\u003c\/p\u003e \u003cp\u003eTypes 28\u003c\/p\u003e \u003cp\u003eNames 29\u003c\/p\u003e \u003cp\u003eComments 30\u003c\/p\u003e \u003cp\u003eAssignment 30\u003c\/p\u003e \u003cp\u003e2.3 Calling Methods 33\u003c\/p\u003e \u003cp\u003eThe Public Interface of a Class 33\u003c\/p\u003e \u003cp\u003eMethod Arguments 34\u003c\/p\u003e \u003cp\u003eReturn Values 35\u003c\/p\u003e \u003cp\u003eMethod Declarations 36\u003c\/p\u003e \u003cp\u003e2.4 Constructing Objects 38\u003c\/p\u003e \u003cp\u003e2.5 Accessor and Mutator Methods 40\u003c\/p\u003e \u003cp\u003e2.6 The API Documentation 41\u003c\/p\u003e \u003cp\u003eBrowsing the API Documentation 41\u003c\/p\u003e \u003cp\u003ePackages 43\u003c\/p\u003e \u003cp\u003e2.7 Implementing a Test Program 44\u003c\/p\u003e \u003cp\u003e2.8 Object References 46\u003c\/p\u003e \u003cp\u003e2.9 Graphical Applications 49\u003c\/p\u003e \u003cp\u003eFrame Windows 50\u003c\/p\u003e \u003cp\u003eDrawing on a Component 51\u003c\/p\u003e \u003cp\u003eDisplaying a Component in a Frame 53\u003c\/p\u003e \u003cp\u003e2.10 Ellipses, Lines, Text, and Color 54\u003c\/p\u003e \u003cp\u003eEllipses and Circles 54\u003c\/p\u003e \u003cp\u003eLines 55\u003c\/p\u003e \u003cp\u003eDrawing Text 56\u003c\/p\u003e \u003cp\u003eColors 56\u003c\/p\u003e \u003cp\u003e\u003cb\u003e3 Implementing Classes 61\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e3.1 Instance Variables and Encapsulation 62\u003c\/p\u003e \u003cp\u003eInstance Variables 62\u003c\/p\u003e \u003cp\u003eThe Methods of the Counter Class 64\u003c\/p\u003e \u003cp\u003eEncapsulation 64\u003c\/p\u003e \u003cp\u003e3.2 Specifying the Public Interface of a Class 66\u003c\/p\u003e \u003cp\u003eSpecifying Methods 66\u003c\/p\u003e \u003cp\u003eSpecifying Constructors 67\u003c\/p\u003e \u003cp\u003eUsing the Public Interface 69\u003c\/p\u003e \u003cp\u003eCommenting the Public Interface 69\u003c\/p\u003e \u003cp\u003e3.3 Providing the Class Implementation 72\u003c\/p\u003e \u003cp\u003eProviding Instance Variables 72\u003c\/p\u003e \u003cp\u003eProviding Constructors 73\u003c\/p\u003e \u003cp\u003eProviding Methods 75\u003c\/p\u003e \u003cp\u003e3.4 Unit Testing 81\u003c\/p\u003e \u003cp\u003e3.5 PROBLEM SOLVING Tracing Objects 84\u003c\/p\u003e \u003cp\u003e3.6 Local Variables 86\u003c\/p\u003e \u003cp\u003e3.7 The this Reference 88\u003c\/p\u003e \u003cp\u003e3.8 Shape Classes 90\u003c\/p\u003e \u003cp\u003e\u003cb\u003e4 Fundamental Data Types 99\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e4.1 Numbers 100\u003c\/p\u003e \u003cp\u003eNumber Types 100\u003c\/p\u003e \u003cp\u003eConstants 102\u003c\/p\u003e \u003cp\u003e4.2 Arithmetic 107\u003c\/p\u003e \u003cp\u003eArithmetic Operators 107\u003c\/p\u003e \u003cp\u003eIncrement and Decrement 107\u003c\/p\u003e \u003cp\u003eInteger Division and Remainder 108\u003c\/p\u003e \u003cp\u003ePowers and Roots 109\u003c\/p\u003e \u003cp\u003eConverting Floating-Point Numbers to Integers 110\u003c\/p\u003e \u003cp\u003e4.3 Input and Output 114\u003c\/p\u003e \u003cp\u003eReading Input 114\u003c\/p\u003e \u003cp\u003eFormatted Output 115\u003c\/p\u003e \u003cp\u003e4.4 PROBLEM SOLVING First Do it By Hand 121\u003c\/p\u003e \u003cp\u003e4.5 Strings 122\u003c\/p\u003e \u003cp\u003eThe String Type 122\u003c\/p\u003e \u003cp\u003eConcatenation 123\u003c\/p\u003e \u003cp\u003eString Input 124\u003c\/p\u003e \u003cp\u003eEscape Sequences 124\u003c\/p\u003e \u003cp\u003eStrings and Characters 124\u003c\/p\u003e \u003cp\u003eSubstrings 125\u003c\/p\u003e \u003cp\u003e\u003cb\u003e5 Decisions 131\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e5.1 The if Statement 132\u003c\/p\u003e \u003cp\u003e5.2 Comparing Values 137\u003c\/p\u003e \u003cp\u003eRelational Operators 138\u003c\/p\u003e \u003cp\u003eComparing Floating-Point Numbers 139\u003c\/p\u003e \u003cp\u003eComparing Strings 140\u003c\/p\u003e \u003cp\u003eComparing Objects 141\u003c\/p\u003e \u003cp\u003eTesting for null 141\u003c\/p\u003e \u003cp\u003e5.3 Multiple Alternatives 146\u003c\/p\u003e \u003cp\u003e5.4 Nested Branches 149\u003c\/p\u003e \u003cp\u003e5.5 PROBLEM SOLVING Flowcharts 156\u003c\/p\u003e \u003cp\u003e5.6 PROBLEM SOLVING Selecting Test Cases 159\u003c\/p\u003e \u003cp\u003e5.7 Boolean Variables and Operators 161\u003c\/p\u003e \u003cp\u003eOperators 165\u003c\/p\u003e \u003cp\u003e5.8 APPLICATION Input Validation 166\u003c\/p\u003e \u003cp\u003e\u003cb\u003e6 Loops 171\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e6.1 The while Loop 172\u003c\/p\u003e \u003cp\u003e6.2 PROBLEM SOLVING Hand-Tracing 179\u003c\/p\u003e \u003cp\u003e6.3 The for Loop 183\u003c\/p\u003e \u003cp\u003eHeader 189\u003c\/p\u003e \u003cp\u003e6.4 The do Loop 190\u003c\/p\u003e \u003cp\u003e6.5 APPLICATION Processing Sentinel Values 192\u003c\/p\u003e \u003cp\u003e6.6 PROBLEM SOLVING Storyboards 197\u003c\/p\u003e \u003cp\u003e6.7 Common Loop Algorithms 199\u003c\/p\u003e \u003cp\u003eSum and Average Value 199\u003c\/p\u003e \u003cp\u003eCounting Matches 200\u003c\/p\u003e \u003cp\u003eFinding the First Match 200\u003c\/p\u003e \u003cp\u003ePrompting Until a Match is Found 201\u003c\/p\u003e \u003cp\u003eMaximum and Minimum 201\u003c\/p\u003e \u003cp\u003eComparing Adjacent Values 202\u003c\/p\u003e \u003cp\u003e6.8 Nested Loops 206\u003c\/p\u003e \u003cp\u003e6.9 APPLICATION Random Numbers and Simulations 209\u003c\/p\u003e \u003cp\u003eGenerating Random Numbers 210\u003c\/p\u003e \u003cp\u003eThe Monte Carlo Method 211\u003c\/p\u003e \u003cp\u003e6.10 Using a Debugger 213\u003c\/p\u003e \u003cp\u003e\u003cb\u003e7 Arrays and Array Lists 221\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e7.1 Arrays 222\u003c\/p\u003e \u003cp\u003eDeclaring and Using Arrays 222\u003c\/p\u003e \u003cp\u003eArray References 225\u003c\/p\u003e \u003cp\u003eUsing Arrays with Methods 226\u003c\/p\u003e \u003cp\u003ePartially Filled Arrays 226\u003c\/p\u003e \u003cp\u003eArguments 229\u003c\/p\u003e \u003cp\u003e7.2 The Enhanced for Loop 230\u003c\/p\u003e \u003cp\u003e7.3 Common Array Algorithms 232\u003c\/p\u003e \u003cp\u003eFilling 232\u003c\/p\u003e \u003cp\u003eSum and Average Value 232\u003c\/p\u003e \u003cp\u003eMaximum and Minimum 232\u003c\/p\u003e \u003cp\u003eElement Separators 232\u003c\/p\u003e \u003cp\u003eLinear Search 233\u003c\/p\u003e \u003cp\u003eRemoving an Element 234\u003c\/p\u003e \u003cp\u003eInserting an Element 234\u003c\/p\u003e \u003cp\u003eSwapping Elements 236\u003c\/p\u003e \u003cp\u003eCopying Arrays 237\u003c\/p\u003e \u003cp\u003eReading Input 238\u003c\/p\u003e \u003cp\u003e7.4 PROBLEM SOLVING Adapting Algorithms 240\u003c\/p\u003e \u003cp\u003e7.5 PROBLEM SOLVING Discovering Algorithms by Manipulating Physical Objects 245\u003c\/p\u003e \u003cp\u003e7.6 Two-Dimensional Arrays 248\u003c\/p\u003e \u003cp\u003eDeclaring Two-Dimensional Arrays 248\u003c\/p\u003e \u003cp\u003eAccessing Elements 249\u003c\/p\u003e \u003cp\u003eLocating Neighboring Elements 250\u003c\/p\u003e \u003cp\u003eAccessing Rows and Columns 251\u003c\/p\u003e \u003cp\u003eTwo-Dimensional Array Parameters 252\u003c\/p\u003e \u003cp\u003e7.7 Array Lists 255\u003c\/p\u003e \u003cp\u003eDeclaring and Using Array Lists 255\u003c\/p\u003e \u003cp\u003eUsing the Enhanced for Loop with Array Lists 258\u003c\/p\u003e \u003cp\u003eCopying Array Lists 259\u003c\/p\u003e \u003cp\u003eWrappers and Auto-boxing 259\u003c\/p\u003e \u003cp\u003eUsing Array Algorithms with Array Lists 260\u003c\/p\u003e \u003cp\u003eStoring Input Values in an Array List 261\u003c\/p\u003e \u003cp\u003eRemoving Matches 261\u003c\/p\u003e \u003cp\u003eChoosing Between Array Lists and Arrays 262\u003c\/p\u003e \u003cp\u003e7.8 Regression Testing 264\u003c\/p\u003e \u003cp\u003e\u003cb\u003e8 Designing Classes 271\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e8.1 Discovering Classes 272\u003c\/p\u003e \u003cp\u003e8.2 Designing Good Methods 273\u003c\/p\u003e \u003cp\u003eProviding a Cohesive Public Interface 273\u003c\/p\u003e \u003cp\u003eMinimizing Dependencies 274\u003c\/p\u003e \u003cp\u003eSeparating Accessors and Mutators 275\u003c\/p\u003e \u003cp\u003eMinimizing Side Effects 276\u003c\/p\u003e \u003cp\u003e8.3 PROBLEM SOLVING Patterns for Object Data 282\u003c\/p\u003e \u003cp\u003eKeeping a Total 282\u003c\/p\u003e \u003cp\u003eCounting Events 283\u003c\/p\u003e \u003cp\u003eCollecting Values 283\u003c\/p\u003e \u003cp\u003eManaging Properties of an Object 284\u003c\/p\u003e \u003cp\u003eModeling Objects with Distinct States 284\u003c\/p\u003e \u003cp\u003eDescribing the Position of an Object 285\u003c\/p\u003e \u003cp\u003e8.4 Static Variables and Methods 286\u003c\/p\u003e \u003cp\u003e8.5 PROBLEM SOLVING Solve a Simpler Problem First 291\u003c\/p\u003e \u003cp\u003e8.6 Packages 295\u003c\/p\u003e \u003cp\u003eOrganizing Related Classes into Packages 295\u003c\/p\u003e \u003cp\u003eImporting Packages 296\u003c\/p\u003e \u003cp\u003ePackage Names 297\u003c\/p\u003e \u003cp\u003ePackages and Source Files 297\u003c\/p\u003e \u003cp\u003e8.7 Unit Test Frameworks 300\u003c\/p\u003e \u003cp\u003e\u003cb\u003e9 Inheritance 305\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e9.1 Inheritance Hierarchies 306\u003c\/p\u003e \u003cp\u003e9.2 Implementing Subclasses 310\u003c\/p\u003e \u003cp\u003e9.3 Overriding Methods 314\u003c\/p\u003e \u003cp\u003e9.4 Polymorphism 319\u003c\/p\u003e \u003cp\u003e9.5 Object: The Cosmic Superclass 330\u003c\/p\u003e \u003cp\u003eOverriding the toString Method 330\u003c\/p\u003e \u003cp\u003eThe equals Method 332\u003c\/p\u003e \u003cp\u003eThe instanceof Operator 333\u003c\/p\u003e \u003cp\u003e\u003cb\u003e10 Interfaces 339\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e10.1 Using Interfaces for Algorithm Reuse 340\u003c\/p\u003e \u003cp\u003eDiscovering an Interface Type 340\u003c\/p\u003e \u003cp\u003eDeclaring an Interface Type 341\u003c\/p\u003e \u003cp\u003eImplementing an Interface Type 343\u003c\/p\u003e \u003cp\u003eComparing Interfaces and Inheritance 345\u003c\/p\u003e \u003cp\u003e10.2 Working with Interface Variables 348\u003c\/p\u003e \u003cp\u003eConverting from Classes to Interfaces 348\u003c\/p\u003e \u003cp\u003eInvoking Methods on Interface Variables 349\u003c\/p\u003e \u003cp\u003eCasting from Interfaces to Classes 349\u003c\/p\u003e \u003cp\u003e10.3 The Comparable Interface 350\u003c\/p\u003e \u003cp\u003eInterface 352\u003c\/p\u003e \u003cp\u003e10.4 Using Interfaces for Callbacks 355\u003c\/p\u003e \u003cp\u003e10.5 Inner Classes 360\u003c\/p\u003e \u003cp\u003e10.6 Mock Objects 361\u003c\/p\u003e \u003cp\u003e10.7 Event Handling 363\u003c\/p\u003e \u003cp\u003eListening to Events 363\u003c\/p\u003e \u003cp\u003eUsing Inner Classes for Listeners 365\u003c\/p\u003e \u003cp\u003e10.8 Building Applications with Buttons 368\u003c\/p\u003e \u003cp\u003e10.9 Processing Timer Events 371\u003c\/p\u003e \u003cp\u003e10.10 Mouse Events 374\u003c\/p\u003e \u003cp\u003e\u003cb\u003e11 Input\/Output and Exception Handling 383\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e11.1 Reading and Writing Text Files 384\u003c\/p\u003e \u003cp\u003e11.2 Text Input and Output 389\u003c\/p\u003e \u003cp\u003eReading Words 389\u003c\/p\u003e \u003cp\u003eReading Characters 390\u003c\/p\u003e \u003cp\u003eClassifying Characters 390\u003c\/p\u003e \u003cp\u003eReading Lines 390\u003c\/p\u003e \u003cp\u003eScanning a String 392\u003c\/p\u003e \u003cp\u003eConverting Strings to Numbers 392\u003c\/p\u003e \u003cp\u003eAvoiding Errors When Reading Numbers 392\u003c\/p\u003e \u003cp\u003eMixing Number, Word, and Line Input 393\u003c\/p\u003e \u003cp\u003eFormatting Output 394\u003c\/p\u003e \u003cp\u003e11.3 Command Line Arguments 396\u003c\/p\u003e \u003cp\u003e11.4 Exception Handling 403\u003c\/p\u003e \u003cp\u003eThrowing Exceptions 403\u003c\/p\u003e \u003cp\u003eCatching Exceptions 405\u003c\/p\u003e \u003cp\u003eChecked Exceptions 407\u003c\/p\u003e \u003cp\u003eClosing Resources 409\u003c\/p\u003e \u003cp\u003eDesigning Your Own Exception Types 410\u003c\/p\u003e \u003cp\u003e11.5 APPLICATION Handling Input Errors 412\u003c\/p\u003e \u003cp\u003e\u003cb\u003e12 Object-Oriented Design 419\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e12.1 Classes and Their Responsibilities 420\u003c\/p\u003e \u003cp\u003eDiscovering Classes 420\u003c\/p\u003e \u003cp\u003eThe CRC Card Method 421\u003c\/p\u003e \u003cp\u003e12.2 Relationships Between Classes 423\u003c\/p\u003e \u003cp\u003eDependency 423\u003c\/p\u003e \u003cp\u003eAggregation 424\u003c\/p\u003e \u003cp\u003eInheritance 425\u003c\/p\u003e \u003cp\u003e12.3 APPLICATION Printing an Invoice 428\u003c\/p\u003e \u003cp\u003eRequirements 429\u003c\/p\u003e \u003cp\u003eCRC Cards 429\u003c\/p\u003e \u003cp\u003eUML Diagrams 432\u003c\/p\u003e \u003cp\u003eMethod Documentation 432\u003c\/p\u003e \u003cp\u003eImplementation 434\u003c\/p\u003e \u003cp\u003e\u003cb\u003e13 Recursion 443\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e13.1 Triangle Numbers 444\u003c\/p\u003e \u003cp\u003e13.2 Recursive Helper Methods 452\u003c\/p\u003e \u003cp\u003e13.3 The Efficiency of Recursion 453\u003c\/p\u003e \u003cp\u003e13.4 Permutations 459\u003c\/p\u003e \u003cp\u003e13.5 Mutual Recursion 463\u003c\/p\u003e \u003cp\u003e13.6 Backtracking 469\u003c\/p\u003e \u003cp\u003e\u003cb\u003e14 Sorting and Searching 477\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e14.1 Selection Sort 478\u003c\/p\u003e \u003cp\u003e14.2 Profiling the Selection Sort Algorithm 481\u003c\/p\u003e \u003cp\u003e14.3 Analyzing the Performance of the Selection Sort Algorithm 484\u003c\/p\u003e \u003cp\u003e14.4 Merge Sort 488\u003c\/p\u003e \u003cp\u003e14.5 Analyzing the Merge Sort Algorithm 491\u003c\/p\u003e \u003cp\u003e14.6 Searching 495\u003c\/p\u003e \u003cp\u003eLinear Search 495\u003c\/p\u003e \u003cp\u003eBinary Search 497\u003c\/p\u003e \u003cp\u003e14.7 PROBLEM SOLVING Estimating the Running Time of an Algorithm 500\u003c\/p\u003e \u003cp\u003eLinear Time 500\u003c\/p\u003e \u003cp\u003eQuadratic Time 501\u003c\/p\u003e \u003cp\u003eThe Triangle Pattern 502\u003c\/p\u003e \u003cp\u003eLogarithmic Time 503\u003c\/p\u003e \u003cp\u003e14.8 Sorting and Searching in the Java Library 504\u003c\/p\u003e \u003cp\u003eSorting 504\u003c\/p\u003e \u003cp\u003eBinary Search 505\u003c\/p\u003e \u003cp\u003eComparing Objects 505\u003c\/p\u003e \u003cp\u003e\u003cb\u003e15 The Java Collections Framework 511\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e15.1 An Overview of the Collections Framework 512\u003c\/p\u003e \u003cp\u003e15.2 Linked Lists 514\u003c\/p\u003e \u003cp\u003eThe Structure of Linked Lists 515\u003c\/p\u003e \u003cp\u003eThe LinkedList Class of the Java Collections Framework 516\u003c\/p\u003e \u003cp\u003eList Iterators 516\u003c\/p\u003e \u003cp\u003e15.3 Sets 520\u003c\/p\u003e \u003cp\u003eChoosing a Set Implementation 520\u003c\/p\u003e \u003cp\u003eWorking with Sets 522\u003c\/p\u003e \u003cp\u003e15.4 Maps 525\u003c\/p\u003e \u003cp\u003e15.5 Stacks, Queues, and Priority Queues 531\u003c\/p\u003e \u003cp\u003eStacks 531\u003c\/p\u003e \u003cp\u003eQueues 532\u003c\/p\u003e \u003cp\u003ePriority Queues 533\u003c\/p\u003e \u003cp\u003e15.6 Stack and Queue Applications 534\u003c\/p\u003e \u003cp\u003eBalancing Parentheses 534\u003c\/p\u003e \u003cp\u003eEvaluating Reverse Polish Expressions 535\u003c\/p\u003e \u003cp\u003eEvaluating Algebraic Expressions 537\u003c\/p\u003e \u003cp\u003eBacktracking 540\u003c\/p\u003e \u003cp\u003eCustomers 543\u003c\/p\u003e \u003cp\u003e\u003cb\u003e16 Basic Data Structures 545\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e16.1 Implementing Linked Lists 546\u003c\/p\u003e \u003cp\u003eThe Node Class 546\u003c\/p\u003e \u003cp\u003eAdding and Removing the First Element 547\u003c\/p\u003e \u003cp\u003eThe Iterator Class 548\u003c\/p\u003e \u003cp\u003eAdvancing an Iterator 549\u003c\/p\u003e \u003cp\u003eRemoving an Element 550\u003c\/p\u003e \u003cp\u003eAdding an Element 552\u003c\/p\u003e \u003cp\u003eSetting an Element to a Different Value 553\u003c\/p\u003e \u003cp\u003eEfficiency of Linked List Operations 553\u003c\/p\u003e \u003cp\u003e16.2 Implementing Array Lists 560\u003c\/p\u003e \u003cp\u003eGetting and Setting Elements 560\u003c\/p\u003e \u003cp\u003eRemoving or Adding Elements 562\u003c\/p\u003e \u003cp\u003eGrowing the Internal Array 563\u003c\/p\u003e \u003cp\u003e16.3 Implementing Stacks and Queues 564\u003c\/p\u003e \u003cp\u003eStacks as Linked Lists 565\u003c\/p\u003e \u003cp\u003eStacks as Arrays 566\u003c\/p\u003e \u003cp\u003eQueues as Linked Lists 567\u003c\/p\u003e \u003cp\u003eQueues as Circular Arrays 568\u003c\/p\u003e \u003cp\u003e16.4 Implementing a Hash Table 570\u003c\/p\u003e \u003cp\u003eHash Codes 570\u003c\/p\u003e \u003cp\u003eHash Tables 570\u003c\/p\u003e \u003cp\u003eFinding an Element 572\u003c\/p\u003e \u003cp\u003eAdding and Removing Elements 572\u003c\/p\u003e \u003cp\u003eIterating over a Hash Table 573\u003c\/p\u003e \u003cp\u003e\u003cb\u003e17 Tree Structures 581\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e17.1 Basic Tree Concepts 582\u003c\/p\u003e \u003cp\u003e17.2 Binary Trees 585\u003c\/p\u003e \u003cp\u003eBinary Tree Examples 586\u003c\/p\u003e \u003cp\u003eBalanced Trees 588\u003c\/p\u003e \u003cp\u003eA Binary Tree Implementation 589\u003c\/p\u003e \u003cp\u003e17.3 Binary Search Trees 590\u003c\/p\u003e \u003cp\u003eThe Binary Search Property 591\u003c\/p\u003e \u003cp\u003eInsertion 592\u003c\/p\u003e \u003cp\u003eRemoval 594\u003c\/p\u003e \u003cp\u003eEfficiency of the Operations 595\u003c\/p\u003e \u003cp\u003e17.4 Tree Traversal 599\u003c\/p\u003e \u003cp\u003eInorder Traversal 599\u003c\/p\u003e \u003cp\u003ePreorder and Postorder Traversals 601\u003c\/p\u003e \u003cp\u003eThe Visitor Pattern 602\u003c\/p\u003e \u003cp\u003eDepth-First and Breadth-First Search 603\u003c\/p\u003e \u003cp\u003eTree Iterators 604\u003c\/p\u003e \u003cp\u003e17.5 Red-Black Trees 605\u003c\/p\u003e \u003cp\u003eBasic Properties of Red-Black Trees 605\u003c\/p\u003e \u003cp\u003eInsertion 607\u003c\/p\u003e \u003cp\u003eRemoval 608\u003c\/p\u003e \u003cp\u003e17.6 Heaps 612\u003c\/p\u003e \u003cp\u003e17.7 The Heapsort Algorithm 622\u003c\/p\u003e \u003cp\u003e\u003cb\u003e18 Generic Classes 629\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e18.1 Generic Classes and Type Parameters 630\u003c\/p\u003e \u003cp\u003e18.2 Implementing Generic Types 631\u003c\/p\u003e \u003cp\u003e18.3 Generic Methods 634\u003c\/p\u003e \u003cp\u003e18.4 Constraining Type Parameters 636\u003c\/p\u003e \u003cp\u003e18.5 Type Erasure 639\u003c\/p\u003e \u003cp\u003e\u003cb\u003e19 Stream Processing 645\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e19.1 The Stream Concept 646\u003c\/p\u003e \u003cp\u003e19.2 Producing Streams 648\u003c\/p\u003e \u003cp\u003e19.3 Collecting Results 649\u003c\/p\u003e \u003cp\u003e19.4 Transforming Streams 652\u003c\/p\u003e \u003cp\u003e19.5 Lambda Expressions 654\u003c\/p\u003e \u003cp\u003e19.6 The Optional Type 659\u003c\/p\u003e \u003cp\u003e19.7 Other Terminal Operations 661\u003c\/p\u003e \u003cp\u003e19.8 Primitive-Type Streams 663\u003c\/p\u003e \u003cp\u003eCreating Primitive-Type Streams 663\u003c\/p\u003e \u003cp\u003eMapping a Primitive-Type Stream 663\u003c\/p\u003e \u003cp\u003eProcessing Primitive-Type Streams 664\u003c\/p\u003e \u003cp\u003e19.9 Grouping Results 665\u003c\/p\u003e \u003cp\u003e19.10 Common Algorithms Revisited 667\u003c\/p\u003e \u003cp\u003eFilling 667\u003c\/p\u003e \u003cp\u003eSum, Average, Maximum, and Minimum 668\u003c\/p\u003e \u003cp\u003eCounting Matches 668\u003c\/p\u003e \u003cp\u003eElement Separators 668\u003c\/p\u003e \u003cp\u003eLinear Search 669\u003c\/p\u003e \u003cp\u003eComparing Adjacent Values 669\u003c\/p\u003e \u003cp\u003e\u003cb\u003e20 Graphical User Interfaces 675\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e20.1 Layout Management 676\u003c\/p\u003e \u003cp\u003eUsing Layout Managers 676\u003c\/p\u003e \u003cp\u003eAchieving Complex Layouts 677\u003c\/p\u003e \u003cp\u003eUsing Inheritance to Customize Frames 678\u003c\/p\u003e \u003cp\u003e20.2 Processing Text Input 680\u003c\/p\u003e \u003cp\u003eText Fields 680\u003c\/p\u003e \u003cp\u003eText Areas 682\u003c\/p\u003e \u003cp\u003e20.3 Choices 685\u003c\/p\u003e \u003cp\u003eRadio Buttons 685\u003c\/p\u003e \u003cp\u003eCheck Boxes 687\u003c\/p\u003e \u003cp\u003eCombo Boxes 687\u003c\/p\u003e \u003cp\u003e20.4 Menus 695\u003c\/p\u003e \u003cp\u003e20.5 Exploring the Swing Documentation 702\u003c\/p\u003e \u003cp\u003e\u003cb\u003e21 Advanced Input\/Output* (Etext Only)\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e21.1 Readers, Writers, and Input\/Output Streams\u003c\/p\u003e \u003cp\u003e21.2 Binary Input and Output\u003c\/p\u003e \u003cp\u003e21.3 Random Access\u003c\/p\u003e \u003cp\u003e21.4 Object Input and Output Streams\u003c\/p\u003e \u003cp\u003e21.5 File and Directory Operations Paths\u003c\/p\u003e \u003cp\u003eCreating and Deleting Files and Directories\u003c\/p\u003e \u003cp\u003eUseful File Operations\u003c\/p\u003e \u003cp\u003eVisiting Directories\u003c\/p\u003e \u003cp\u003e\u003cb\u003e22 Multithreading* (Etext Only)\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e22.1 Running Threads\u003c\/p\u003e \u003cp\u003e22.2 Terminating Threads\u003c\/p\u003e \u003cp\u003e22.3 Race Conditions\u003c\/p\u003e \u003cp\u003e22.4 Synchronizing Object Access\u003c\/p\u003e \u003cp\u003e22.5 Avoiding Deadlocks\u003c\/p\u003e \u003cp\u003e22.6 APPLICATION Algorithm Animation\u003c\/p\u003e \u003cp\u003e\u003cb\u003e23 Internet Networking* (Etext Only)\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e23.1 The Internet Protocol\u003c\/p\u003e \u003cp\u003e23.2 Application Level Protocols\u003c\/p\u003e \u003cp\u003e23.3 A Client Program\u003c\/p\u003e \u003cp\u003e23.4 A Server Program\u003c\/p\u003e \u003cp\u003e23.5 URL Connections\u003c\/p\u003e \u003cp\u003e\u003cb\u003e24 Relational Databases* (Etext Only)\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e24.1 Organizing Database Information\u003c\/p\u003e \u003cp\u003eDatabase Tables\u003c\/p\u003e \u003cp\u003eLinking Tables\u003c\/p\u003e \u003cp\u003eImplementing Multi-Valued Relationships\u003c\/p\u003e \u003cp\u003e24.2 Queries\u003c\/p\u003e \u003cp\u003eSimple Queries\u003c\/p\u003e \u003cp\u003eSelecting Columns\u003c\/p\u003e \u003cp\u003eSelecting Subsets\u003c\/p\u003e \u003cp\u003eCalculations\u003c\/p\u003e \u003cp\u003eJoins\u003c\/p\u003e \u003cp\u003eUpdating and Deleting Data\u003c\/p\u003e \u003cp\u003e24.3 Installing a Database\u003c\/p\u003e \u003cp\u003e24.4 Database Programming in Java\u003c\/p\u003e \u003cp\u003eConnecting to the Database\u003c\/p\u003e \u003cp\u003eExecuting SQL Statements\u003c\/p\u003e \u003cp\u003eAnalyzing Query Results\u003c\/p\u003e \u003cp\u003eResult Set Metadata\u003c\/p\u003e \u003cp\u003e24.5 APPLICATION Entering an Invoice\u003c\/p\u003e \u003cp\u003e\u003cb\u003e25 XML* (Etext Only)\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e25.1 XML Tags and Documents\u003c\/p\u003e \u003cp\u003eAdvantages of XML\u003c\/p\u003e \u003cp\u003eDifferences Between XML and HTML\u003c\/p\u003e \u003cp\u003eThe Structure of an XML Document\u003c\/p\u003e \u003cp\u003e25.2 Parsing XML Documents\u003c\/p\u003e \u003cp\u003e25.3 Creating XML Documents\u003c\/p\u003e \u003cp\u003e25.4 Validating XML Documents\u003c\/p\u003e \u003cp\u003eDocument Type Definitions\u003c\/p\u003e \u003cp\u003eSpecifying a DTD in an XML Document\u003c\/p\u003e \u003cp\u003eParsing and Validation\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 A-38\u003c\/p\u003e \u003cp\u003eAppendix F Tool Summary (Etext Only)\u003c\/p\u003e \u003cp\u003eAppendix G Number Systems (Etext Only)\u003c\/p\u003e \u003cp\u003eAppendix H UML Summary (Etext Only)\u003c\/p\u003e \u003cp\u003eAppendix I JAVA Syntax Summary (Etext Only)\u003c\/p\u003e \u003cp\u003eAppendix J Html Summary (Etext Only)\u003c\/p\u003e \u003cp\u003eGlossary G-1\u003c\/p\u003e \u003cp\u003eIndex I-1\u003c\/p\u003e \u003cp\u003eCredits C-1\u003c\/p\u003e \u003cp\u003eQuick Reference C-3\u003c\/p\u003e","brand":"John Wiley \u0026 Sons Inc","offers":[{"title":"Default Title","offer_id":48866404368727,"sku":"9781119588887","price":48.44,"currency_code":"GBP","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0817\/1739\/5799\/files\/9781119588887.jpg?v=1722278484","url":"https:\/\/bookcurl.com\/products\/big-java-9781119588887","provider":"Book Curl","version":"1.0","type":"link"}