Kendrick WesleyIP5American Intercontinental UniversityITCO321?Hash structure Hash Function ?Source codeNode class/* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor.
*/package haship5;import java.util.ArrayList;/** * * @author squal */ class Node {//make a node chian M menuKey; T itemTaco; Node next; public Node(M menuKey, T itemTaco) { this.menuKey = menuKey; this.itemTaco = itemTaco; } }HashIP5 class/* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor.
*/package haship5;import java.util.ArrayList;/** * * @author squal */public class HashIP5 { static class NodeMap{ private ArrayList bucketListArray; private int bucketNumber; private int arrayListSize; public NodeMap(){ bucketListArray = new ArrayList(); bucketNumber = 10; arrayListSize = 4; } public int arrayListSize() { return arrayListSize; } private int getBucketListIndex(M menuKey){ int hashCode = menuKey.hashCode(); int bucketListIndex = hashCode % bucketNumber; return bucketListIndex; } public T get(M menuKey){//get the item from the menu int bucketListIndex = getBucketListIndex(menuKey); Node head = bucketListArray.get(bucketListIndex); while (head !=null){ if (head.menuKey.equals(menuKey)) return head.itemTaco; head = head.next; } return null; } public void add(M menuKey, T itemTaco){ int bucketListIndex = getBucketListIndex(menuKey); Node head = bucketListArray.get(bucketListIndex); while (head !=null){ if (head.menuKey.equals(menuKey)){ head.itemTaco = itemTaco; return; } head = head.next; } arrayListSize ++; head = bucketListArray.get(bucketListIndex); Node bucketNode = new Node(menuKey, itemTaco); bucketNode.next = head; bucketListArray.set(bucketListIndex, bucketNode); } public T remove(M menuKey){ int bucketListIndex = getBucketListIndex(menuKey); Node head = bucketListArray.get(bucketListIndex); Node prev = null; while (head != null){ if (head.menuKey.equals(menuKey)) break; else prev = head; head = head.next; } if (head == null) return null; arrayListSize –; if (prev !=null) prev.next = head.next; else bucketListArray.set(bucketListIndex, head.next); return head.itemTaco; } } public static void main(String args) { // TODO code application logic here NodeMap nodeMap = new NodeMap(); nodeMap.add(“crunchy”, 1); nodeMap.add(“Soft”, 2); nodeMap.remove(“Crunchy”); nodeMap.remove(“Soft”); } }