我正在尝试使用链接法(Chaining)为哈希表编写数据结构。当我从嵌套类中删除 "static" 关键字时,我在给 hmap 分配内存的行上收到错误消息 "Cannot create a generic array of SeparateChaining.Node"?
加上 static 关键字后就正常工作了。请问这里 static 关键字的重要性是什么,它有什么区别?我正在创建对象数组,那么为什么错误会显示“通用数组”(Eclipse)?
加上 static 关键字后就正常工作了。请问这里 static 关键字的重要性是什么,它有什么区别?我正在创建对象数组,那么为什么错误会显示“通用数组”(Eclipse)?
public class SeparateChaining<Key,Value> {
private int m;
private Node[] hmap;
private int n;
public SeparateChaining()
{
m=5;
n=0;
//error here on removal of static keyword from the node class declaration
hmap=new Node[m];
}
private ____ class Node //works fine with static. Otherwise shows error
{
private Object key;
private Object value;
private Node next;
public Node(Object k, Object v)
{
key=k;
value=v;
}
}
谢谢
key
的类型应该是Key
,而value
的类型应该是Value
(而不是Object
)?构造函数参数也是同样的情况吗? - Bernhard Barker