java - 确保对象实现 Comparable

标签 java generics compare

我有一个小问题,想知道如何解决它。我有一个通用类 Tuple<A,B>现在我想根据 A 和 B 对它们的元组进行排序。它应该是这样的:

未分类:

(1,5)
(2,8)
(6,8)
(1,4)
(2,4)

排序:

(1,4)
(1,5)
(2,4)
(2,8)
(6,8)

出于这个原因,我想到在 Tuple 类中实现一个通用的比较方法 ( public int compareTo(Tuple<A, B> other) )。唯一的问题是,您可以为其类参数化的所有对象(例如 A=Integer、B=String)也必须实现 compareTo 方法才能使整个事情正常进行。

有没有办法确保 Tuple 可以容纳的所有对象都实现 Comparable 接口(interface)?

或者对于如何解决这个问题还有其他建议吗?

谢谢

最佳答案

如果您将类声明为

public class Tuple<A extends Comparable<? super A>,
                   B extends Comparable<? super B>> { ...

然后确保 A 和 B 都是自比较的。然后,您可以对类中任何类型 A 或 B 的对象调用 compareTo()

关于java - 确保对象实现 Comparable,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3166816/

相关文章:

Java 日期到毫秒

c# - 无法传递派生列表<>

c - 与 C 中多个值的单行比较

java - 像 DBMS 一样快速计算笛卡尔积

java - 除非添加打印语句,否则线程同步不起作用

TypeScript:是否可以获取泛型函数的返回类型?

go - 为什么当函数返回一个函数时 Go 泛型会失败?

java - 无法复制 : "Comparison method violates its general contract!"

javascript - 使用数组中的所有字符串匹配一个字符串

java - 通过 getMemoryMXBean() 和 jvisualvm 获得的内存使用量之间存在差异吗?