繁体   English   中英

Java中的通用类型二进制搜索树

[英]generic type binary search tree in java

我想实现一个通用类型的二进制搜索树。 声明如下:

public BTNode<T> {}

public class BinaryTree<T extends Comparable<T>> {}

public class BinarySearchTree <T extends Comparable<T>> extends BinaryTree<T> {}

现在,我编写了一个名为Entry的类,并希望将该类的实例存储在BinarySearchTree中。

public class Entry implements Comparable{
private String firstName, lastName, address, phoneNumber;

public Entry(String fName, String lName, String address, String phoneNum) {
    this.firstName = fName;
    this.lastName = lName;
    this.address = address;
    this.phoneNumber = phoneNum;
}

public int compareTo(Object arg0) {
    // TODO Auto-generated method stub
    return 0;
}
}

但是当我声明BinarySearchTree<Entry> bst ,总会出现一个编译错误:

“绑定不匹配:Entry类型不是BinarySearchTree类型的有界参数>的有效替代品”

对于Java中的通用类型,我还是很陌生。 有人可以帮我解决问题吗? 谢谢

您的Entry类需要实现Comparable<Entry>而不是原始Comparable ,因为原始ComparableComparable<T>不匹配。

public class Entry implements Comparable<Entry> { ... }

使您的Entry类实现Comparable<Entry> ,使其符合BinaryTree的约定。

合同说“扩展(或实现)Comparable <T>类型的所有类型T” 在将“ T”替换为“ Entry”的过程中,您看到这是必需的: Entry extends Comparable<Entry>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM