我有这段代码:
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
答案 0 :(得分:4)
您正尝试从TableEntry
(V
)数组中获取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
}