private void deleteFromTableKToV ( int entry , int keyHash ) { checkArgument ( entry != ABSENT ) ; int keyBucket = bucket ( keyHash ) ; if ( hashTableKToV [ keyBucket ] == entry ) { hashTableKToV [ keyBucket ] = nextInBucketKToV [ entry ] ; nextInBucketKToV [ entry ] = ABSENT ; return ; } int prevInBucket = hashTableKToV [ keyBucket ] ; for ( int entryInBucket = nextInBucketKToV [ prevInBucket ] ; entryInBucket != ABSENT ; entryInBucket = nextInBucketKToV [ entryInBucket ] ) { if ( entryInBucket == entry ) { nextInBucketKToV [ prevInBucket ] = nextInBucketKToV [ entry ] ; nextInBucketKToV [ entry ] = ABSENT ; return ; } prevInBucket = entryInBucket ; } throw new AssertionError ( "Expected to find entry with key " + keys [ entry ] ) ; }
Updates the K - to - V hash table to remove the entry at the specified index which is assumed to be present . Does not update any other data structures .