接口的实现 - Java

时间:2016-09-11 00:50:16

标签: java interface sortedmap

这可能是一个非常基本的问题,但我真的很困惑...... 我想知道如何从接口实现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)的代码

1 个答案:

答案 0 :(得分:0)

简单:

类实现中的签名必须与接口的签名相匹配。此外,您必须在界面中实现所有方法:

public class BstSimpleSortedMap implements SimpleSortedMap {

  String get(Integer k) { ... }

  int size() { ... }

  boolean isEmpty() { ... }

  ...
}

困难的部分实际上是实现二进制搜索树(BST)。

你的&#34; get()&#34;只需返回&#34;我&#34;树中的元素。

问:你能告诉我们这些代码吗?