0
我与哈希映射工作,我宣布水桶从SLLNode
类型的数组保存MapEntry
对象:努力理解对象的声明代码
private SLLNode<MapEntry<K, E>>[] buckets;
现在,我不明白,在构造函数的代码:
buckets = (SLLNode<MapEntry<K, E>>[]) new SLLNode[m]; //where m is int, and it is
// the size of the array.
我不明白这个问题,以及:
public SLLNode<MapEntry<K,E>> search(K targetKey) {
int b = hash(targetKey);
for (SLLNode<MapEntry<K,E>> curr = buckets[b]; curr != null; curr =
curr.succ) {
if (targetKey.equals(((MapEntry<K, E>) curr.element).key))
return curr;
if (targetKey.equals(((MapEntry<K, E>) curr.element).key))
return curr;
}
return null;
准确地说,我不明白如何将(K targetKey)
转换为(MapEntry<K,E>)
并将其用于equals方法的逻辑。
'buckets =(SLLNode> [])new SLLNode [m];' - 哪一部分让您感到困惑?你能指出你不明白的具体语法,或者可能是你认为这不起作用的具体原因吗? –
user2357112
我不明白为什么(SLLNode> [])在新的SLLNode [m]之前使用。我一直都在使用它,但我不知道它到底是什么。通常我已经声明了如下对象:Object O = new Object(“something”) –
Mario