EBK BIG JAVA: EARLY OBJECTS, INTERACTIV
EBK BIG JAVA: EARLY OBJECTS, INTERACTIV
6th Edition
ISBN: 8220102010314
Author: Horstmann
Publisher: YUZU
Question
Book Icon
Chapter 16, Problem 21PE
Program Plan Intro

Implementation of hash set

Program plan:

  • In a file “HashSet.java”, import necessary packages, and create a class “HashSet”,
    • Declare the array of “Node” type.
    • Declare the necessary variables.
    • Define the constructor to create a hash table.
      • Create an array and set the current size to “0”.
      • Compute the value for “p”.
      • Execute a loop,
        • Increment the value of “p”.
      • Set the value for “a”, and “b”.
    • Define the method “isPrime()” to test whether the value passed is prime or not.,
    • Define the method “contains()”,
      • Assign the hash code.
      • Check whether the value is less than “0”,
        • If it is true, compute the absolute value of hash code.
      • Update the hash value.
      • Assign the bucket value to the current node.
      • 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 bucket value at the hash code to the current node.
      • Check whether the current node is not null value,
        • If it is true,  set the collision value to “1”
      • Execute a loop,
        • Check the condition,
          • Returns “0”.
            • Assign the next value to 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 collision value.
    • 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 an 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 the condition,
          • Assign the next node value to the current node value.
        • Otherwise,
          • Execute the following statement,
            • Increment the index.
            • Check the condition,
              • Throws an exception“NoSuchElementException”.
            • Assign the value.
          • Check the condition at the end of the loop.
        • Return the current node value.
      • Define the method “remove()”,
        • Throw an exception “UnsupportedOperationException”.
  • In a file “HashSetFromBook.java”, import necessary packages, and create a class “HashSetFromBook”,
    • Declare the array of “Node” type.
    • Declare the necessary variables.
    • Define the constructor to create a hash table.
      • Create an array and set the current size to “0”.
    • Define the method “isPrime()” to test whether the value passed is prime or not.,
    • 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 bucket value to the current node.
      • 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,
      • Declare and initialize the variable.
      • Get the hash code.
      • Check whether the value is less than “0”,
        • If it is true, compute the absolute value of hash code.
      • Update the hash code.
      • Assign the bucket value at the hash code to the current node.
      • Check whether the current node is not null value,
        • If it is true,  set the collision value to “1”
      • Execute a loop,
        • Check the condition whether the element is already in the set,
          • Returns “0”.
              • Assign the next value to 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 collision value.
    • 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 an 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 the condition,
          • Assign the next node value to the current node value.
        • Otherwise,
          • Execute the following statement,
            • Increment the index.
            • Check the condition,
              • Throws an exception “NoSuchElementException”.
            • Assign the value.
          • Check the condition at the end of the loop.
        • Return the current node value.
      • Define the method “remove()”,
        • Throw an exception “UnsupportedOperationException”.
  • In a file “HashSetTest.java”, import necessary packages, and create a class “HashSetTest”,
    • Define the “main()” method,
      • Declare and initialize the necessary variables.
      • Create an object for “HashSet”.
      • Create an object for “HashSetFromBook”.
      • Execute “try” statement,
        • Execute a loop,
          • Get the string.
          • Update the necessary values.
      • Catch if the exception occurs,
        • Print the message.
      • Print the output.

Explanation of Solution

Yes”, the multiply-add-divide (MAD) method decreases the collisions.

Explanation:

  • The hash function is defined as follows,

  Hash(x) = (a * x + b

Blurred answer
Students have asked these similar questions
Objective: 1. Implement a custom Vector class in C++ that manages dynamic memory efficiently. 2. Demonstrate an understanding of the Big Five by managing deep copies, move semantics, and resource cleanup. 3. Explore the performance trade-offs between heap and stack allocation. Task Description: Part 1: Custom Vector Implementation 1. Create a Vector class that manages a dynamically allocated array. 。 Member Variables: ° T✶ data; // Dynamically allocated array for storage. std::size_t size; // Number of elements currently in the vector. std::size_t capacity; // Maximum number of elements before reallocation is required. 2. Implement the following core member functions: Default Constructor: Initialize an empty vector with no allocated storage. 。 Destructor: Free any dynamically allocated memory. 。 Copy Constructor: Perform a deep copy of the data array. 。 Copy Assignment Operator: Free existing resources and perform a deep copy. Move Constructor: Transfer ownership of the data array…
2.68♦♦ Write code for a function with the following prototype: * Mask with least signficant n bits set to 1 * Examples: n = 6 -> 0x3F, n = 17-> 0x1FFFF * Assume 1 <= n <= w int lower_one_mask (int n); Your function should follow the bit-level integer coding rules Be careful of the case n = W.
Hi-Volt Components You are the IT manager at Hi-Voltage Components, a medium-sized firm that makes specialized circuit boards. Hi-Voltage's largest customer, Green Industries, recently installed a computerized purchasing sys- tem. If Hi-Voltage connects to the purchasing system, Green Industries will be able to submit purchase orders electronically. Although Hi-Voltage has a computerized accounting system, that system is not capable of handling EDI. Tasks 1. What options does Hi-Voltage have for developing a system to connect with Green Industries' pur- chasing system? 2. What terms or concepts describe the proposed computer-to-computer relationship between Hi-Voltage and Green Industries? why not? 3. Would Hi-Voltage's proposed new system be a transaction processing system? Why or 4. Before Hi-Voltage makes a final decision, should the company consider an ERP system? Why or why not?

Chapter 16 Solutions

EBK BIG JAVA: EARLY OBJECTS, INTERACTIV

Knowledge Booster
Background pattern image
Similar questions
SEE MORE QUESTIONS
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