Java: 定义后找不到变量

Java: Cannot find variable after it has been defined

我正在尝试创建一个虚拟 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 "cannot find symbol : variable p"

知道为什么吗?谢谢!

为方便起见,一些变量定义:

table = MyLinkedLists 的哈希值table;

x = 散列大小table;

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;
  }
}
Node p = table[i].first;
  while(table[i].p != null){
    values.add(p.value);
    p = p.next;
  }

除非 table[i] 的 return 值包含变量 p ,否则您不能使用它