标签: comparable

使用Comparators帮助比较float成员变量

我可以很好地比较字符串,但想知道如何对浮点数进行排名?

getChange()返回一个String.我希望能够降序排序.我怎样才能做到这一点?

更新:

package org.stocktwits.helper;

import java.util.Comparator;

import org.stocktwits.model.Quote;

public class ChangeComparator implements Comparator<Quote>
{
    public int compare(Quote o1, Quote o2) {
        float change1 = Float.valueOf(o1.getChange());
        float change2 = Float.valueOf(o2.getChange());

        if (change1 < change2) return -1;
        if (change1 == change2) return 0; // Fails on NaN however, not sure what you want
        if (change2 > change2) return 1;
    }
}
Run Code Online (Sandbox Code Playgroud)

我收到编译时错误:

This method must return a result of type int    ChangeComparator.java   
Run Code Online (Sandbox Code Playgroud)

java sorting arraylist comparable comparator

11
推荐指数
3
解决办法
2万
查看次数

Java错误:"比较方法违反了其总合同!"

我有这个代码:

package org.optimization.geneticAlgorithm;
import org.optimization.geneticAlgorithm.selection.Pair;

public abstract class Chromosome implements Comparable<Chromosome> {
    public abstract double fitness();
    public abstract Pair<Chromosome> crossover(Chromosome parent);
    public abstract void mutation();
    public int compareTo(Chromosome o) {
        int rv = 0;
        if (this.fitness() > o.fitness()) {
            rv = -1;
        } else if (this.fitness() < o.fitness()) {
            rv = 1;
        }
        return rv;
    }
}
Run Code Online (Sandbox Code Playgroud)

每次我运行此代码时,我都会收到此错误:

Exception in thread "main" java.lang.IllegalArgumentException: Comparison method violates its general contract!
at java.util.ComparableTimSort.mergeHi(ComparableTimSort.java:835)
at java.util.ComparableTimSort.mergeAt(ComparableTimSort.java:453)
at java.util.ComparableTimSort.mergeCollapse(ComparableTimSort.java:376)
at java.util.ComparableTimSort.sort(ComparableTimSort.java:182)
at java.util.ComparableTimSort.sort(ComparableTimSort.java:146)
at …
Run Code Online (Sandbox Code Playgroud)

java openjdk comparable

11
推荐指数
1
解决办法
1万
查看次数

如果传递了错误的对象类型,我应该抛出什么类型的异常?

如果将错误类型的对象传递给我的compareTo方法,我应该抛出什么类型的Exception?

ClassCastException异常?

java exception comparable

11
推荐指数
2
解决办法
2万
查看次数

不能与父子孙子继承相媲美

给出以下代码:

public abstract class Participant {
    private String fullName;

    public Participant(String newFullName) {
        this.fullName = new String(newFullName);
    }

    // some more code 
}


public class Player extends Participant implements Comparable <Player> {    
    private int scoredGoals;

    public Player(String newFullName, int scored) {
        super(newFullName);
        this.scoredGoals = scored;
    }

    public int compareTo (Player otherPlayer) {
        Integer _scoredGoals = new Integer(this.scoredGoals);
        return _scoredGoals.compareTo(otherPlayer.getPlayerGoals());
    }

    // more irrelevant code 
}

public class Goalkeeper extends Player implements Comparable <Goalkeeper> { 
    private int missedGoals;        

    public Goalkeeper(String newFullName) …
Run Code Online (Sandbox Code Playgroud)

java inheritance comparable

10
推荐指数
2
解决办法
4327
查看次数

Java排序:按属性排序对象数组,不允许对象使用Comparable

我有一个类,包含一个Book对象的数组,我需要根据Book的属性(Title或PageNumber)对数组进行排序.问题是我不允许将Comparable类与Book一起使用.您如何推荐我在图书馆中排列图书?写我自己的那种?或者有更简单的方法吗?如果您需要代码片段,请询问!

java arrays sorting properties comparable

10
推荐指数
2
解决办法
4万
查看次数

等于和可比较集

我在这里发布了一些代码,正确解决了海报的问题.OP希望删除重复项并将某些特殊项目放在列表顶部.我使用了TreeSet一个特殊的Comparable课程,它包含了Locale他们正在努力实现他们想要的东西.

然后我开始思考......正如你所做的那样...我通过0compareTo方法返回来消除重复,而不是trueequals实现返回,因为需要做的是正确地指示副本Set(从定义中)Set).

我不反对使用这种技术但是我使用的是什么可能被视为无证件的功能?我可以安全地假设继续这样做会继续发挥作用吗?

java equals compareto comparable treeset

10
推荐指数
1
解决办法
1万
查看次数

java"不可比"的例外?

我正在创建一个实现可比较的自定义类,如果有人试图比较两个我的定义无法比较的对象,我想抛出某种异常.API中是否已存在合适的异常,或者我是否需要创建自己的异常?

java exception comparable

10
推荐指数
1
解决办法
2200
查看次数

Java HashSet允许欺骗; 问题可比吗?

我有一个类"Accumulator",它实现了Comparable compareTo方法,我试图将这些对象放入HashSet中.

当我向HashSet添加()时,我在调试器中的compareTo方法中看不到任何活动,无论我在哪里设置断点.另外,当我完成add()时,我在Set中看到了几个重复项.

在这里,我搞砸了什么; 为什么不比较,因此允许欺骗?

谢谢,
IVR复仇者

java set comparable

9
推荐指数
3
解决办法
7628
查看次数

使用TreeMap时,Java"无法转换为Comparable"

可能重复:
Java:SortedMap,TreeMap,Comparable?如何使用?

我正在使用Java JungI图形包和Netbeans 7.我从Java得到以下错误:

 Exception in thread "main" java.lang.ClassCastException: graphvisualization.MyVertex cannot be cast to java.lang.Comparable
    at java.util.TreeMap.put(TreeMap.java:542)
Run Code Online (Sandbox Code Playgroud)

以下是与错误相关的代码:

SortedMap<MyVertex, Double> vMap = new TreeMap<MyVertex, Double>();
       double curRank = 0;
       for(MyVertex v: g.getVertices())                 //g is a SparseGraph<MyVertex, MyEdge>
       {
           curRank = vertexRank.getVertexScore(v);
           vMap.put(v, curRank);                        //**Here is my Error**
       }
Run Code Online (Sandbox Code Playgroud)

MyVertex类是我为图表制作的一个类.以下是MyVertex的代码

public class MyVertex 
{
    int vID;                    //id for this vertex
    double centrality;          //centrality measure for this vertex
    int degree;                 //the degree of this vertex

    public MyVertex(int id)
    {
        this.vID …
Run Code Online (Sandbox Code Playgroud)

java casting treemap comparable sortedmap

9
推荐指数
3
解决办法
3万
查看次数

compareTo如何工作?

我知道这compareTo会对一个字符串与另一个字符串的相关性返回一个负面或正面的结果,但是为什么:

public class Test {
    public static void main(String[] args) {
        String y = "ab2";
        if(y.compareTo("ac3") == -1) {
            System.out.println("Test");
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

是真的

public class Test {
    public static void main(String[] args) {
        String y = "ab2";
        if(y.compareTo("ab3") == -1) {
            System.out.println("Test");
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

也是如此?

java equals compareto comparable

9
推荐指数
1
解决办法
2万
查看次数