如何在 java 中实现哈希表的构造函数
how can I implement the constructor of a hashtable in java
假设我需要自己实现一个哈希表,但我在实现构造函数时遇到了一些问题。例如,如果我需要初始化 List[] buckets,但是当我像下面这样写代码时,计算机只是给出了一个错误的 "buckets[i]=new 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
}
}
在填充之前正确初始化您的public List< String>[] buckets;
:
public List< String>[] buckets = new ArrayList< String>[120];
在Java中List
只是一个无法实例化的接口。你需要的是一个class实现这样的接口,例如ArrayList
。尝试
buckets = new List[120];
for(int i=0;i<120;i++)
{
buckets[i]=new ArrayList<String>();
}
假设我需要自己实现一个哈希表,但我在实现构造函数时遇到了一些问题。例如,如果我需要初始化 List[] buckets,但是当我像下面这样写代码时,计算机只是给出了一个错误的 "buckets[i]=new 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
}
}
在填充之前正确初始化您的public List< String>[] buckets;
:
public List< String>[] buckets = new ArrayList< String>[120];
在Java中List
只是一个无法实例化的接口。你需要的是一个class实现这样的接口,例如ArrayList
。尝试
buckets = new List[120];
for(int i=0;i<120;i++)
{
buckets[i]=new ArrayList<String>();
}