这可能是一个非常基本的问题,但我真的很困惑......
我想知道如何从接口实现String get(Integer k)
到另一个类的方法。
public interface SimpleSortedMap {
// Map ADT methods:
// Returns the number of entries in the map
int size();
// Is the map empty or not
boolean isEmpty();
// Returns the value associated with key k, if such an entry
// exists; otherwise returns null
String get(Integer k);
// If there is no entry with key equal to k, then adds entry
// (k,v) and returns null; else replaces with v the existing
// value and returns the old value.
String put(Integer k, String v);
// Removes the entry with key equal to k and returns its value
// If no such entry exists, then returns null
String remove(Integer k);
// Returns an iterable collection containing all the keys
// stored in the map
Iterable<Integer> keySet();
}
我实现此接口的类在这里
public class BstSimpleSortedMap implements SimpleSortedMap {
private String get(Integer k, MySimpleEntry subtreeRoot) {
// base case: empty subtree
if (subtreeRoot == null) {
// k isn't in this subtree
return null;
}
// base case: k matches the key in the current entry
if (k.compareTo(subtreeRoot.getKey()) == 0) {
// return the value
return null;
} // recursive case: k < the current entry
else if (k.compareTo(subtreeRoot.getKey()) < 0) {
// return the result of recursing to the left
return null;
} // recursive case: k > the current entry
else {
// return the result of recursing to the right
return null;
}
}
}
这不是完整的代码,但我想知道如何在公共接口SimpleSortedMap中使用ADT方法并在BSTSimpleSortedMap中调用它们。例如,我想在BSTSimpleSortedMap的第11行编写相当于返回String get(Integer k)
的代码
答案 0 :(得分:0)
简单:
类实现中的签名必须与接口的签名相匹配。此外,您必须在界面中实现所有方法:
public class BstSimpleSortedMap implements SimpleSortedMap {
String get(Integer k) { ... }
int size() { ... }
boolean isEmpty() { ... }
...
}
困难的部分实际上是实现二进制搜索树(BST)。
你的&#34; get()&#34;只需返回&#34;我&#34;树中的元素。
问:你能告诉我们这些代码吗?