Skip to main content

Hash Map Implementation in Java a university project

Buy now

Project:   

Complete exercise C-10.40 on p. 454 in the textbook.  Read the problem statement carefully.  The authors initially describe the behavior of the java.util.Hashmap class.  As they describe it, the Java implementation of a Hash Map consists of a table (bucket array) of entries.  Each entry consists of a K, V pair with the addition of a next reference that refers to a next entry in the bucket.  In that way, if collisions have occurred and multiple entries/keys hash to the same bucket, they will be arranged in a singly linked list.

Data Structure Classes: Your job is to modify the ChainHashMap class, p. 425 of  the textbook to exhibit the same behavior.  You will be modifying the source code of the author’s classes – so the first step will be to copy those files to your eclipse package.  At a minimum I would recommend these:

1. Map.java
2. AbstractMap.java
3. UnsortedTableMap.java
4. AbstractHashMap.java
5. ChainHashMap.java
6. Entry.java

You can approach your solution in one of several different ways.  As a requirement of the project, consider the following:


  • as collisions occur, you will be creating and maintaining your own ‘ad hoc’ list linked together by the ‘next’ references in each Entry.
  • as a starting point, modify class MapEntry in class AbstractMap.java to include the extra field for the next reference. 
  • The bucket array (the table instance variable in class ChainHashMap.java)  can be changed to an ArrayList that will contain MapEntry references – i.e. the first object in the ad hoc list hashing to that bucket
  • methods bucketGet and bucketPut in class ChainHashMap.java will need to walk through the ad hoc list starting at the bucket identified by ‘h’ the hash value looking for a match.  Consider using the ArrayList methods get and put.  You will know the search is done when ‘next’ equals null.

Test Driver:  

You will need to create a test driver.  Create an implementation of Code Fragment 10.2, p. 405 in the textbook.  Rather than reading from System.in, do file I/O with Java.

File Data and Name:  In order to generate test data, you must use my file named ‘test.txt’ that is in the Blackboard Information content area.  You can ‘hard code’ this name into your program – or better yet, pass the file name as a command line argument and read that within the test driver.  And you might have to play around with ‘where’ to put the file.  Eclipse and Java don’t necessarily look in the directory containing the code, but the directory above.  (Try the CSIS-294 project folder.)


Deliverables:  Submit online all source code that you have created and/or changed and at least one 'screen shot' output demonstrating program execution.  “Capture” a screen shot by running the application, pressing ALT-PRTSCR, starting Word, copying clipboard contents to an empty document, and saving the document.  (You will submit this online along with your source code.)  Make sure your name is in the comments section of all applications, and on the document page generated by Word.

Sample Output:



Buy now

CONTACT DETAILS

For any other questions or other tasks please feel free to contact me
via email: mhassnainjamil@gmail.com
via WhatsApp: +92-324-7042178
via skype: hassnainjamil1

Comments

Popular posts from this blog

The Zoo Management System - entity relationship diagram & MS Access Database

Zoo Management System - Project Details: You are the employee of a big, worldwide working Zoo Management Company. Your company is responsible for the Zoo management. Your boss thinks it would be a great idea to store all data for each Zoo in a brand new self-developed ZOO Management System. Up to now, the ZOO management company has maps of each ZOO available. Your boss knows that you took a course in introduction on an ERP system, so he asks you if you could help designing such a system. Each ZOO must have the same organizational structure, which should look like this: Each Zoo has a Zoo-Address. Each Zoo has many visitors (Visitor Ticket Process (VTP). Many Zoo-Attractions belong to a Zoo. Module 1: Entity Relationship Diagram Design a ER (entity-relationship) diagram for your ZOO Management System. Use the information provided below with the entities and its attributes. Put the entities in the correct relationship to each other (organizational structure). Module 2: DB Implem...

Human Physiology by Stuart Ira Fox [PDF] (12th edition) free download

Sudoku Game Project in Java with full source code including GUI task

Introduction The purpose of the project is to try in practice the use of recursion and object-oriented program design. Please make sure to read this entire note before starting your work. Pay close attention to the sections on deadlines, deliverables, and exam rules. The problem Your task in this part of the project is to write a solver for Sudoku puzzles. Sudoku puzzles are a kind of crossword puzzles with numbers where the following two conditions have to be met: In each row or column, the nine numbers have to be from the set [1,2,3,4,5,6,7,8,9] and they must all be different.  For each of the nine non-overlapping 3x3 blocks, the nine numbers have to be from the set [1,2,3,4,5,6,7,8,9] and they ust all be different. The following two figures show a Sudoku puzzle and its solution. The input The input of your program, the Sudoku puzzles, is given in text files. More specifically, they are represented as nine lines of nine characters separated by spaces. The characters can be of two...