isn' accomplished by simply removing data item from cellleaving it empty why notremember that during insertion the probe process steps along series of cellslooking for vacant one if cell is made empty in the middle of this sequence of full cellsthe find routine will give up when it sees the empty celleven if the desired cell can eventually be reached for this reason deleted item is replaced by an item with special key value that identifies it as deleted in this applet we assume all legitimate key values are positiveso the deleted value is chosen as - deleted items are marked with the special key *delthe insert button will insert new item at the first available empty cell or in *delitem the find button will treat *delitem as an existing item for the purposes of searching for another item further along if there are many deletionsthe hash table fills up with these ersatz *deldata itemswhich makes it less efficient for this reason many hash table implementations don' allow deletion if it is implementedit should be used sparingly duplicates allowedcan you allow data items with duplicate keys to be used in hash tablesthe fill routine in the hash applet doesn' allow duplicatesbut you can insert them with the insert button if you like then you'll see that only the first one can be accessed the only way to access second item with the same key is to delete the first one this isn' too convenient you could rewrite the find algorithm to look for all items with the same key instead of just the first one howeverit would then need to search through all the cells of every linear sequence it encountered this wastes time for all table accesseseven when no duplicates are involved in the majority of cases you probably want to forbid duplicates clustering try inserting more items into the hash table in the hash workshop applet as it gets more fullclusters grow larger clustering can result in very long probe lengths this means that it' very slow to access cells at the end of the sequence the more full the array isthe worse clustering becomes it' not problem when the array is half fulland still not too bad when it' two-thirds full beyond thishoweverperformance degrades seriously as the clusters grow larger and larger for this reason it' critical when designing hash table to ensure that it never becomes more than halfor at the most two-thirdsfull (we'll discuss the mathematical relationship between how full the hash table is and probe lengths at the end of this java code for linear probe hash table it' not hard to create methods to handle searchinsertionand deletion with linear-probe hash tables we'll show the java code for these methodsand then complete hash java program that puts them in context the find(method the find(method first calls hashfunc(to hash the search key to obtain the index number hashval the hashfunc(method applies the operator to the search key and the array sizeas we've seen before nextin while conditionfind(checks if the item at this index is empty (nullif notit checks if the item contains the search key if it doesit returns the item if it doesn'