【发布时间】:2013-12-10 06:47:13
【问题描述】:
我正在尝试实现二叉搜索树,如果我在 java 中使用通用编程,那么这棵树应该能够存储任何类型的数据,例如int,字符串或基本上任何其他对象。但是这样一个类的问题在于对函数进行编码,例如如果我正在编写 addToTree 函数,则“
这个问题对于其他数据结构也是一样的。
【问题讨论】:
-
首先,不能使用原始类型作为泛型的参数(所以,不能使用''等运算符)。其次,您应该将您的集合绑定到实现 Comparable 并使用 compareTo 方法的类,这应该可以解决问题。
-
不能对泛型使用算术运算符。如果您需要对象比较,那么您的泛型类型将必须限制为
<T extends Comparable>或您将为实现逻辑创建的任何其他常见类型基础(通常是接口)。 -
或者您必须将比较委托给在构造二叉树时定义的 Comparator,就像 TreeSet 一样。为什么不看看它的文档和代码?
标签: java data-structures generic-programming