问题标签 [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.
binary-tree - Java二叉树,如何实现Node?
在树类中,我假设比较两个节点,因为您知道搜索和添加项目。我对如何使其具有可比性有一些问题。当向树添加数据(通用的,任何东西)时,调用 Tree 类,然后创建一个新的 Node 对象。如何在 Node 类中声明变量数据/元素,使其属于 E 类型(任何类型)并且仍然是 Comparable?说真的,我来回尝试过,但没有得出任何结论。
java - Java 泛型:compareTo 和“capture#1-of ?”
以下给了我一条错误消息:
错误是:
这里发生了什么?我做了所有东西的类型,Comparable
所以我可以调用.compareTo
并排序这个列表。我是否错误地使用了泛型?
java - Java:接口和泛型的简单问题
我制作了一个使用 JGraphT 的界面。我的预期用途是Comparable
,因为实现Comparable
允许对象与某些数据结构一起使用。同样,我有一个 JGraphT 函数,我想使用它来处理任何Distanceable
.
这是我在 JGraphtUtilities 中的 JGraphT 函数。它不是为 定义的Animal
,而是为Distanceable
:
但它不起作用。编译器在调用此方法的另一个类中的这一行上产生错误:
错误是:
然而,
我在这里做错了什么?
另一个问题:编译器给出了这个警告:
Distanceable
如果我想让这个函数适用于所有对象,我想给它什么类型?
java - 为什么 Collections.binarySearch() 不能与这个可比的?
我有这个Player
实现Comparable
接口的类。然后我有一个ArrayList
s Player
。我试图binarySearch()
在 s 的列表中Player
找到一个Player
,但 Java 给了我一个“ cannot find symbol: method binarySearch(java.util.ArrayList< Player>,Player)
”。
这是 Player 类:
奇怪的是,当我在同一个列表上尝试 Collections.sort() 时,它起作用了。
java - Java:整数 obj 无法转换为 Comparable
我在尝试将驱动程序类中的 Integer 对象作为我创建的 SortedArray Generic 类的函数的参数传递时遇到问题。从我的驱动程序类中,我将用户的 int 输入转换为一个 Integer 对象,以将其转换为我的 SortedArray 类的 Comparable。
我继续收到错误消息:“线程“main”中的异常 java.lang.ClassCastException:java.lang.Integer 无法转换为 Comparable”。我查看了一些同学的源代码,只是发现在设置参数/参数方面差别不大,但他们的代码工作得很好。我一直在寻找几个小时试图找出我犯了什么错误,但我仍然找不到为什么我的 Integer 对象不能转换为 Comparable。
这是我的 SortedArray 类的一些内容
这是我的驱动程序类的代码,它传递整数对象 insertObj 作为 SortedArray 的插入函数的参数。
java - 为什么 Arrays.sort 采用 Object[] 而不是 Comparable[]?
我想知道为什么 Arrays 类的排序方法要求对象 [] 类型的参数。为什么参数不是 Comparable[] 类型。如果您不通过 Comparable[],则会生成 ClassCastException。
为什么... public static void sort(Object[] a)而不是public static void sort(Comparable[] a)?谢谢
java - 何时使用 Comparable 和 Comparator
我有一个需要在字段上排序的对象列表,比如分数。没有多想,我写了一个实现 Comparator 的新类,它完成了任务并且它工作。
现在回顾一下,我想知道是否应该让我的类实现 Comparable,而不是创建一个实现 Comparator 的新类。分数是对象将被排序的唯一字段。
我做了什么可以接受的做法?
正确的方法是“首先让类实现 Comparable(用于自然排序),如果需要替代字段比较,则创建一个实现 Comparator 的新类”?
如果上面的(2)是真的,那么这是否意味着只有在类实现 Comparable 之后才应该实现 Comparator ?(假设我拥有原始课程)。
java - Java 可比接口 compareTo 方法
我没有看到我做错了什么,但 NetBeans 给了我以下错误:
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)
java - 比较两个通用数字的值
我想比较类型的变量T extends Number
。现在我想知道这两个变量中的哪一个大于或等于另一个。不幸的是,我还不知道确切的类型,我只知道它将是java.lang.Number
. 我怎样才能做到这一点?
编辑:我尝试了另一种使用TreeSet
s 的解决方法,它实际上适用于自然排序(当然它有效,除了 AtomicInteger 和 AtomicLong 之外的所有Number
实现子类)。Comparable
因此我会丢失重复的值。使用List
s时,Collection.sort()
由于绑定不匹配,不会接受我的列表。很不满意。