Java 二维数组哈希表

Java 二维数组哈希表,java,hashtable,multidimensional-array,Java,Hashtable,Multidimensional Array,我被要求使用2D数组创建哈希表。我曾经这样做过,但是在我的put方法中,我的理解有点错误,2D数组必须有两个循环才能实现,这里是我的put代码,我不能插入任何东西 public class Array2DHashTable<K, V> { // here is my variable and my constructor. // Array2DHashTable(int tableSize){ table = (Entry[][]) new HashEntry[

我被要求使用2D数组创建哈希表。我曾经这样做过,但是在我的put方法中,我的理解有点错误,2D数组必须有两个循环才能实现,这里是我的put代码,我不能插入任何东西

 public class Array2DHashTable<K, V> {
    // here is my variable and my constructor. 
     // Array2DHashTable(int tableSize){ table = (Entry[][]) new HashEntry[tableSize]     [COLUMN_SIZE]; 
    //numItems = 0; }

    public void put(K key, V value){
       int hash= key.hashCode() % ROW_SIZE;
        int seenIt = hash;
       int j;
      for(j=0;j<COLUMN_SIZE;j++){
        while(table[hash][j] != null && table[hash][j].getKey().equals(key)){
          hash= ( hash+1)%ROW_SIZE;
          if(hash == seenIt) return;
          }
       }
      table[hash][j] = new HashEntry(key,value);
      numItems++;
    }

}


class HashEntry<K, V>  implements Entry<K, V>  {

  // all the variables and gutter and setter 
}

如果找到相同的键而不是更改哈希,则可能需要覆盖该值。下面是实现这一点的代码

    public void put(K key, V value){
      int hash= key.hashCode() % ROW_SIZE;
      int seenIt = hash;
      int j;
      for(j=0;j<COLUMN_SIZE;j++){
        while(table[hash][j] != null){
          if (table[hash][j].getKey().equals(key)) // overwrite the value
            hash=(hash+1)%ROW_SIZE;
        }
      }
      table[hash][j] = new HashEntry(key,value);
      numItems++;
    }

什么是列大小和行大小?这些静态数字是给我的行大小。这是=10,列大小i放入一个随机数,它是5;我对它进行了三元组,但它不起作用,因为在我的set方法中,我只设置了值,而没有设置keyYou,在那里设置了整个HashEntry。因此,我想您可以使用那里的值。问题是,当我添加它时,无法添加它,因为这一行表[hash][j]=new HashEntrykey,value;你能在这里为我提供HashEntry的整个实现吗。我可以运行这个并让你知道。你是指整个程序还是仅仅是主要方法