Java:定义后找不到变量

时间:2015-11-26 13:46:04

标签: java linked-list hashmap hashtable

我正在尝试创建一个虚拟Node,它允许我遍历我创建的LinkedList对象,从LinkedList的.first Node开始,一直持续到它没有更多的价值观。具体来说,我遇到的问题是,当我创建一个虚拟Node时,Java无法识别我刚刚用来定义虚拟Node的变量。请注意以下代码:

private MyLinkedList extract(int x){
MyLinkedList values = new MyLinkedList();
for(int i = 0; i < x; i++){
  Node p = table[i].first;
  while(table[i].p != null){
    values.add(p.value);
    p = p.next;
  }
}
return values;
}

错误出现在while循环booelan语句中,我被告知Java“找不到符号:变量p”

知道为什么吗?谢谢!

为方便起见,您可以使用一些变量定义:

table = MyLinkedLists的哈希表;

x =哈希表的大小;

2 个答案:

答案 0 :(得分:1)

p是一个局部变量,它不是table[i]引用引用的实例的成员。

尝试:

for(int i = 0; i < x; i++){
  Node p = table[i].first;
  while(p != null){
    values.add(p.value);
    p = p.next;
  }
}

答案 1 :(得分:1)

Node p = table[i].first;
  while(table[i].p != null){
    values.add(p.value);
    p = p.next;
  }

除非table[i]的返回值包含变量p,否则您无法使用