我试图理解为什么我收到此错误:
- 这是错误 -
File: ...\HashTable.java [line: 103]
Error: The return type is incompatible with HashTableInterface<Key,Value>.iterators()
该接口包含一个内部类:
public class Entry<Key, Value>{...}
和LinkedList类似于java API但它包含一个迭代器内部类,但在测试更简单的东西时:
- 这是工作代码,至少在drjava的交互窗格中 -
LinkedList<String> list = new LinkedList<String>();
Iterator<String> test = list.iterator();
Run Code Online (Sandbox Code Playgroud)
但我无法在我的HashTable类中编译此方法:
- 这是我无法工作的代码 -
public Iterator<Entry<Key, Value>> iterator(){
LinkedList<Entry<Key, Value>> iter = new LinkedList<Entry<Key, Value>>();
return iter.iterator();
}
Run Code Online (Sandbox Code Playgroud)
我认为它简单,它似乎并不太复杂,但任何输入都将非常感激.
**你是对的,它应该是list.iterator();
编辑
- 好吧,这是界面 -
import nhUtilities.containers2.*;
interface HashTableInterface<Key, Value> {
public boolean isEmpty();
public Value get(Key key);
public void add(Key key, Value value);
public void …Run Code Online (Sandbox Code Playgroud) 为什么是
LinkedList<String>[] list = new LinkedList[32];
StaticError:Bad types in assignment:from raw LinkedList[] to LinkedList<String>[]
Run Code Online (Sandbox Code Playgroud)
和
LinkedList<String>[] list= (LinkedList<String>[]) new LinkedList[32];
StaticError: Bad types in cast: from raw LinkedList[] to LinkedList<String>[]
Run Code Online (Sandbox Code Playgroud)
编译,但给我关于原始类型的运行时错误?
我需要创建一个LinkedLists数组(基本上是一个哈希表...而且它是功课,所以我不能偏离它).我计划通过使用单独的链接来处理冲突,这只是在LinkedList中使用连续元素填充数组中的重复条目.任何想法将不胜感激.
这可能吗?这是我的作业,我的老师显然相信它,但在我看来,不可能在短乘法之外使用加法或乘法.
写入(并提供测试器)递归算法:
int multiply(int x,int y)
将两个正整数相乘而不使用*运算符.不要只为自己添加x次!
(提示:编写一个递归方法,将整数乘以0的范围内的值.10.然后编写第二个递归方法,实现您学到的乘法算法,以便在小学中乘以多位数.)
我的问题是,一旦你分解任何多位数并开始将它们加在一起你必须使用大于10的数字乘法,即22*6是2*6 + 20*6 ...所以我完全错过了什么?
编辑 我想我应该添加这是我的代码,
public int mult(int x, int y){
return x == 0 ? 0 : (mult(x-1, y) + y);
}
Run Code Online (Sandbox Code Playgroud)
这是完美的,但据我理解的说明,这是打破不只是添加x自己y次.我个人认为不是,但我的老师不是很清楚,我想知道是否还有其他一些我没有想过的方法,对不起这种困惑.