简体   繁体   English

如何在Java中实现哈希表的构造函数

[英]how can I implement the constructor of a hashtable in java

Suppose I need to implement a hashtable on my own,but I have some problems about implementing my constructor. 假设我需要自己实现一个哈希表,但是在实现自己的构造函数方面存在一些问题。 For example,if I need to initialize List[] buckets,but when I write like the following codes,the computer just gave a wrong signal of"buckets[i]=new List()" , can someone tell me how to finish the constructor in this case? 例如,如果我需要初始化List []存储桶,但是当我编写如下代码时,计算机只是发出了错误的信号“ buckets [i] = new List()”,有人可以告诉我如何完成在这种情况下的构造函数? import java.util.List; 导入java.util.List;

import java.util.LinkedList;

public class GeneralHashMap extends MyHashMap {

  public List< String>[] buckets;

  public GeneralHashMap() {
    for(int i=0;i<120;i++)
    {
        buckets[i]=new List<String>(); 
    }

    // TODO: IMPLEMENT CONSTRUCTOR

  }


  public GeneralHashMap(int newsize)
  {
    for(int i=0;i<newsize;i++)
    {
        buckets[i]=new List<String>();
    }
  }

  @Override
  protected int hash(String token) {

    // TODO: IMPLEMENT HASHING FUNCTION FOR GENERAL HASHMAP
    return -1;

  }

  @Override
  public void add(String token) {

    // TODO: IMPLEMENT ADD METHOD USING BUCKETS

  }

  @Override
  public void display() {

    // TODO: IMPLEMENT DISPLAY METHOD TO SHOW CONTENTS OF ALL BUCKETS

  }

}

In Java List is just an interface which cannot be instantiated. 在Java中, List只是一个无法实例化的接口。 What you need is a class implementing such interface, for example, ArrayList . 您需要一个实现此类接口的类,例如ArrayList Try 尝试

buckets = new List[120];
for(int i=0;i<120;i++)
{
    buckets[i]=new ArrayList<String>(); 
}

initialize your public List< String>[] buckets; 初始化您的public List< String>[] buckets; properly before filling it: 正确填充之前:

public List< String>[] buckets = new ArrayList< String>[120];

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM