Big Java, Binder Ready Version: Early Objects
Big Java, Binder Ready Version: Early Objects
6th Edition
ISBN: 9781119056447
Author: Cay S. Horstmann
Publisher: WILEY
Question
Book Icon
Chapter 16, Problem 19PE
Program Plan Intro

Implementation of “remove()” operation

Program plan:

  • In a file “HashSet.java”, import necessary packages, and create a class “HashSet”,
    • Declare the array of “Node” type.
    • Declare the necessary variable.
    • Define the constructor to create a hash table,
      • Create an array and set the current size to “0”.
    • Define the method “contains()”,
      • Assign the hash code.
      • Check whether the value is less than “0”,
        • If it is true, assign the negative value.
          • Update the hash value.
          • Assign the current node value.
          • Execute loop till array becomes null,
            • Check the condition,
              • Return true.
            • Assign the current value.
          • Returns false.
    • Define the method “add()” to add the element to the set,
      • Get the hash code.
      • Check whether the value is less than “0”,
        • If it is true, assign the negative value.
          • Update the hash code.
          • Assign the hash code value to the current node.
          • Execute a loop,
            • Check the condition,
              • Return false.
            • Assign the next value to the value in the current node.
          • Create a new node.
          • Assign the value to new node value.
          • Assign the value to the next node.
          • Assign the new node value to the bucket.
          • Increment the size.
          • Return true.
    • Define the method “remove()” to remove the object from the set,
      • Get the hash code.
      • Check whether the value is less than “0”,
        • If it is true, assign the negative value.
          • Update the hash code.
          • Assign the hash code value to the current node.
          • Set null to the previous node.
          • Execute a loop,
            • Check the condition,
              • Check whether the previous node contains null value,
                • If it is true, assign the next node value to the bucket.
                  • Otherwise,
                    • Assign the next of the current node value to the next of the previous node value.
                  • Decrement the size.
                  • Return true.
            • Assign the current node value to the previous node value.
            • Assign the next of the current node value to the current node.
          • Return false.
    • Define the method “iterator ()” to return an iterator that traverse the set elements,
      • Return the object of “HashSetIterator”.
    • Define the method “size ()” to return the size of the set.
    • Create a class “Node”,
      • Declare the object for “Object”.
      • Declare the object of “Node”.
    • Create a class “HashSetIterator” that implements the interface “Iterator”,
      • Declare the necessary variables.
      • Define the constructor to create a hash set that point to the first element of the hash set.
      • Define the method “hasNext()”,
        • Check whether the current node and the next of the current node is not null,
          • If it is true, returns true.
        • Execute a loop,
          • Check whether the bucket contains not null value,
            • If it is true, returns true.
        • Returns false.
      • Define the method “next()”,
        • Check whether the current node is not null value,
          • If it is true, assign the current node value to the previous.
          • Check whether the next reference of the current node is not null,
            • Assign the next node value to the current node value.
                  • Otherwise,
                    • Call the method “moveToNext_Bucket()”.
        • Otherwise,
          • Call the method “moveToNext_Bucket()”.
        • Set the Boolean value to true.
        • Return the current node value.
      • Define the method “moveToNext_Bucket()”,
        • Execute the following statement,
          • Increment the index.
          • Check the condition,
            • Throw an exception “NoSuchElementException”.
                  • Assign the value.
        • Check the condition at the end of the loop.
      • Define the method “remove()”,
        • Execute for the Boolean value,
          • Throw an exception “UnsupportedOperationException”.
        • Check whether the previous is  null value,
          • Set the current node to null
          • Set the index to “-1”.
          • Call the method “removeFirst()”.
        • Otherwise,
          • Assign the current node value to the object variable.
          • Assign the previous to the current node value.
          • Call the method “remove()”.
        • Decrement the size.
        • Set the previous to null.
        • Set the Boolean variable to false.
      • Define the method “removeFirst()”,
        • Create a loop,
          • Check whether the bucket contains not null value,
            • If it is true, assign the next value to the bucket.
            • Return nothing.
      • Define the method “remove” with an argument of object parameter,
        • Get the hash code.
        • Check whether the hash code is less than “0”,
          • If it is true, assign the negative value.
        • Update the hash code.
        • Set the bucket index.
        • Create a node.
        • Set the value to null.
        • Execute a loop,
          • Check the condition,
            • Check whether the previous is null,
              • If it is true, assign the next of the current node to the bucket.
            • Otherwise, assign the next of the current node to the next of the previous node.
            • Returns nothing.
          • Assign the current node to the previous node.
          • Set the current element.
  • In a file “HashSetTest.java”, import necessary package, and create a class “HashSetTest”,
    • Define the “main()” method,
      • Create an object for “HashSet”.
      • Add the element “Harry” to the set.
      • Add the element “Sue” to the set.
      • Add the element “Nina” to the set.
      • Add the element “Susannah” to the set.
      • Add the element “Larry” to the set.
      • Add the element “Tony” to the set.
      • Create an iterator.
      • Print the actual output.
      • Execute a loop,
        • Print the actual output.
      • Print the symbol “]”.
      • Print the expected output.
      • Create an iterator.
      • Call the method “next()”.
      • Call the method “next()”.
      • Call the method “remove()”.
      • Create an iterator.
      • Print the actual output.
      • Execute a loop,
        • Print the actual output.
      • Print the symbol “]”.
      • Print the expected output.

Blurred answer

Chapter 16 Solutions

Big Java, Binder Ready Version: Early Objects

Knowledge Booster
Background pattern image
Recommended textbooks for you
Text book image
Database System Concepts
Computer Science
ISBN:9780078022159
Author:Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Publisher:McGraw-Hill Education
Text book image
Starting Out with Python (4th Edition)
Computer Science
ISBN:9780134444321
Author:Tony Gaddis
Publisher:PEARSON
Text book image
Digital Fundamentals (11th Edition)
Computer Science
ISBN:9780132737968
Author:Thomas L. Floyd
Publisher:PEARSON
Text book image
C How to Program (8th Edition)
Computer Science
ISBN:9780133976892
Author:Paul J. Deitel, Harvey Deitel
Publisher:PEARSON
Text book image
Database Systems: Design, Implementation, & Manag...
Computer Science
ISBN:9781337627900
Author:Carlos Coronel, Steven Morris
Publisher:Cengage Learning
Text book image
Programmable Logic Controllers
Computer Science
ISBN:9780073373843
Author:Frank D. Petruzella
Publisher:McGraw-Hill Education