Foreach循环语法错误

时间:2015-10-30 07:35:07

标签: java for-loop

我有这段代码:

private V[] elements;

public int size(){
  int returnValue = 0;
  for(TableEntry<K,V> pointer :  elements){
    while(pointer != null){
      returnValue++;
      pointer = pointer.next;
    }
  }
  return returnValue;
}

我得到错误:

  

类型不匹配:无法从foreach行中的元素类型V转换为SimpleHashtable.TableEntry。

这是完整的课程:Code

2 个答案:

答案 0 :(得分:4)

您正尝试从TableEntryV)数组中获取elements个对象。这不起作用。

此外,您的循环是双倍的,对于您尝试搜索阵列其余部分的数组中的每个条目。

请改为尝试:

public int size() {
    int returnValue = 0;
    for (V pointer : elements)
        if (pointer != null) {
            returnValue++;
        }
    return returnValue;
}

答案 1 :(得分:0)

将指针变量的类型更改为V

for (V pointer : elements) {
    \\ loop body
}