问题标签 [comparable]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1768 浏览

binary-tree - Java二叉树,如何实现Node?

在树类中,我假设比较两个节点,因为您知道搜索和添加项目。我对如何使其具有可比性有一些问题。当向树添加数据(通用的,任何东西)时,调用 Tree 类,然后创建一个新的 Node 对象。如何在 Node 类中声明变量数据/元素,使其属于 E 类型(任何类型)并且仍然是 Comparable?说真的,我来回尝试过,但没有得出任何结论。

0 投票
1 回答
20532 浏览

java - Java 泛型:compareTo 和“capture#1-of ?”

以下给了我一条错误消息:

错误是:

这里发生了什么?我做了所有东西的类型,Comparable所以我可以调用.compareTo并排序这个列表。我是否错误地使用了泛型?

0 投票
1 回答
583 浏览

java - Java:接口和泛型的简单问题

我制作了一个使用 JGraphT 的界面。我的预期用途是Comparable,因为实现Comparable允许对象与某些数据结构一起使用。同样,我有一个 JGraphT 函数,我想使用它来处理任何Distanceable.

这是我在 JGraphtUtilities 中的 JGraphT 函数。它不是为 定义的Animal,而是为Distanceable

但它不起作用。编译器在调用此方法的另一个类中的这一行上产生错误:

错误是:

然而,

我在这里做错了什么?

另一个问题:编译器给出了这个警告:

Distanceable如果我想让这个函数适用于所有对象,我想给它什么类型?

0 投票
2 回答
4365 浏览

java - 为什么 Collections.binarySearch() 不能与这个可比的?

我有这个Player实现Comparable接口的类。然后我有一个ArrayLists Player。我试图binarySearch()在 s 的列表中Player找到一个Player,但 Java 给了我一个“ cannot find symbol: method binarySearch(java.util.ArrayList< Player>,Player)”。

这是 Player 类:

奇怪的是,当我在同一个列表上尝试 Collections.sort() 时,它起作用了。

0 投票
3 回答
12081 浏览

java - Java:整数 obj 无法转换为 Comparable

我在尝试将驱动程序类中的 Integer 对象作为我创建的 SortedArray Generic 类的函数的参数传递时遇到问题。从我的驱动程序类中,我将用户的 int 输入转换为一个 Integer 对象,以将其转换为我的 SortedArray 类的 Comparable。

我继续收到错误消息:“线程“main”中的异常 java.lang.ClassCastException:java.lang.Integer 无法转换为 Comparable”。我查看了一些同学的源代码,只是发现在设置参数/参数方面差别不大,但他们的代码工作得很好。我一直在寻找几个小时试图找出我犯了什么错误,但我仍然找不到为什么我的 Integer 对象不能转换为 Comparable。

这是我的 SortedArray 类的一些内容

这是我的驱动程序类的代码,它传递整数对象 insertObj 作为 SortedArray 的插入函数的参数。

0 投票
2 回答
1002 浏览

java - 为什么 Arrays.sort 采用 Object[] 而不是 Comparable[]?

我想知道为什么 Arrays 类的排序方法要求对象 [] 类型的参数。为什么参数不是 Comparable[] 类型。如果您不通过 Comparable[],则会生成 ClassCastException。

为什么... public static void sort(Object[] a)而不是public static void sort(Comparable[] a)?谢谢

0 投票
19 回答
122391 浏览

java - 何时使用 Comparable 和 Comparator

我有一个需要在字段上排序的对象列表,比如分数。没有多想,我写了一个实现 Comparator 的新类,它完成了任务并且它工作。

现在回顾一下,我想知道是否应该让我的类实现 Comparable,而不是创建一个实现 Comparator 的新类。分数是对象将被排序的唯一字段。

  1. 我做了什么可以接受的做法?

  2. 正确的方法是“首先让类实现 Comparable(用于自然排序),如果需要替代字段比较,则创建一个实现 Comparator 的新类”?

  3. 如果上面的(2)是真的,那么这是否意味着只有在类实现 Comparable 之后才应该实现 Comparator ?(假设我拥有原始课程)。

0 投票
1 回答
7016 浏览

java - Java 可比接口 compareTo 方法

我没有看到我做错了什么,但 NetBeans 给了我以下错误:

0 投票
2 回答
352 浏览

java - 在 Comparable 中实现 compareTo 时,特定的有符号整数是否重要班级?

在实现 compareTo() 时,是否需要考虑“差异”的程度?

例如,如果我有 3 个对象,C1、C2 和 C3,则 C1 < C2 < C3。

C1.compareTo(C2) 是否应该返回一个小于 C2.compareTo(C3) 的整数?

Comparable 接口的文档似乎没有指定一种或另一种方式,所以我猜度数并不重要,但很高兴知道返回特定数字是否有一些优势(例如,改进TreeSet 排序速度什么的)。

http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Comparable.html#compareTo(T)

0 投票
11 回答
52136 浏览

java - 比较两个通用数字的值

我想比较类型的变量T extends Number。现在我想知道这两个变量中的哪一个大于或等于另一个。不幸的是,我还不知道确切的类型,我只知道它将是java.lang.Number. 我怎样才能做到这一点?

编辑:我尝试了另一种使用TreeSets 的解决方法,它实际上适用于自然排序(当然它有效,除了 AtomicInteger 和 AtomicLong 之外的所有Number实现子类)。Comparable因此我会丢失重复的值。使用Lists时,Collection.sort()由于绑定不匹配,不会接受我的列表。很不满意。