具有合并哈希而不是二次探测的哈希表

时间:2016-09-12 22:26:55

标签: java hashtable hashset coalesce

我正在研究一个当前正在使用二次探测的HashSet类,并试图让它使用合并的散列。我对哈希很新,所以合并散列的概念对我来说非常困惑。目前我正在使用添加和删除方法。

添加:

public boolean add( AnyType x )
 {
    int currentPos = findPos( x );
    if( isActive( array, currentPos ) )
        return false;

    if( array[ currentPos ] == null ) 
        occupied++;
    array[ currentPos ] = new HashEntry( x, true );
    currentSize++;
    modCount++;

    if( occupied > array.length / 2 )        
        rehash( );

    return true;                   
}

并删除:

public boolean remove( Object x )
{
      int currentPos = findPos( x );
      if( !isActive( array, currentPos ) )
         return false;

      array[ currentPos ].isActive = false;
      currentSize--;
      modCount++;    

      if( currentSize < array.length / 8 )
          rehash( );

      return true;
}

我理解在插入表格时,合并散列如何在纸上工作。但除此之外,我真的迷失了如何在Java中实现它。

任何帮助将不胜感激!谢谢!

0 个答案:

没有答案