标签: comparable

子类中重写compareTo方法的问题

我正在创建子类并在其中包含一些类元素。现在我想重写超类中的compareTo方法,并使用子类中的变量作为新compareTo方法中的参数,但我收到错误消息,指出compareTo方法的参数必须与超类中的参数相同。

这个问题有什么解决办法吗?

提前致谢!

我尝试过的解决方案是:

1)只是简单地在子类中编写新方法(而不是覆盖超类中的方法)2)使用我想要的参数在超类中创建新的compareTo方法

这样程序就可以工作,但我觉得这不是解决这个问题的正确方法

任何人都可以对此提出建议或提供建议吗?

java compareto comparable

0
推荐指数
1
解决办法
305
查看次数

为什么在类中定义compareTo方法时可以实现Comparable接口?

您可以compareTo在不实现Comparable接口的情况下在类中定义方法 .实现Comparable 界面有什么好处?

java interface comparable

-1
推荐指数
1
解决办法
1117
查看次数

Java:Effizient List Sorting

我有一个List包含可变数量的对象(通常超过1000).这些对象具有某些属性,例如价格和距离(均为int).

现在我希望能够从最近到最远的List最便宜的OR排序,但我不知道如何实现它.我已经尝试制作我的对象工具Comparable,但这只能让我按其中一个属性排序......我如何根据不同的属性进行排序?

java sorting comparable

-1
推荐指数
1
解决办法
44
查看次数

Grails中的SortedSet不起作用

我想使用SortedSetGrails,但我得到的只是一个MissingMethodException.

包含有序集的类如下所示:

class SystemUser {

    SortedSet organisations
    // ... some other fields

    static hasMany = [organisations: Organisation]
    static belongsTo = [Organisation]

}
Run Code Online (Sandbox Code Playgroud)

......以及Comparable像这样实现的类:

class Organisation implements Comparable {

    String name
    // ... some other fields

    static hasMany = [users: SystemUser]

    int compareTo(other) {
        return name.comparteTo(other.name)
    }

}
Run Code Online (Sandbox Code Playgroud)

当我尝试保存SystemUser对象时,我收到此异常消息:

groovy.lang.MissingMethodException: No signature of method: java.lang.String.comparteTo() is applicable for argument types: (java.lang.String) values: [ABC]
Possible solutions: compareTo(java.lang.String), compareTo(java.lang.Object)
Run Code Online (Sandbox Code Playgroud)

我的例子几乎与官方参考例子相同.

java grails groovy comparable sortedset

-2
推荐指数
1
解决办法
2007
查看次数

无法比较可比较的类型(对象)

我收到了这个神秘的错误:

对于参数类型java.lang.Comparable,java.lang.Comparable,未定义operator>

有没有搞错?

(这是代码)

public class BST<T extends Comparable<T>> {
    public static class Node<P extends Comparable<P>> {
        P val;
        Node<P> left;
        Node<P> right;

        public Node() {

        }

        public Node(P val) {
            this.val = val;
        }
    }

    Node<T> root;

    private void addValHelper(Node root, Node newNode) {
        if (root.val > newNode.val) { // <-- ERROR IS HERE
            if (root.left == null) {
                root.left = newNode;
            } else {
                addValHelper(root.left, newNode);
            }
        } else {
            if (root.right == null) {
                root.right = newNode; …
Run Code Online (Sandbox Code Playgroud)

java generics comparable

-2
推荐指数
1
解决办法
115
查看次数

您可以使用Java中的Comparator创建许多排序序列是什么意思?

在可比性中,只能创建一个排序序列,而在比较器中,可以创建许多排序序列。排序顺序在这里到底是什么意思。

java sorting collections comparable comparator

-3
推荐指数
1
解决办法
1091
查看次数

如何通过没有Comparator/Comparable的字段对对象的ArrayList进行排序

我有一个对象的arraylist无法实现Comparator/Comparable接口.

对象有一个字段:'SequenceNumber',它是一个整数.我需要按照这个字段(从最低到最高)的顺序对arraylist进行排序,而不实现上面提到的接口.

有没有一种简单的方法可以做到这一点,我可以手动编写一个排序算法,但想知道是否有一个更有效(和更多无错误)的方式这样做,我在搜索时错过了?

注意:使用Java 7.

java sorting arraylist object comparable

-3
推荐指数
2
解决办法
2622
查看次数