相关疑难解决方法(0)

使用==比较Java中的浮点数有什么问题?

根据这个java.sun页面 ==是Java中浮点数的相等比较运算符.

但是,当我输入以下代码时:

if(sectionID == currentSectionID)
Run Code Online (Sandbox Code Playgroud)

进入我的编辑器并运行静态分析,我得到:"JAVA0078浮点值与==相比"

使用==比较浮点值有什么问题?这样做的正确方法是什么? 

java equality floating-accuracy

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

带有双值的Java CompareTO

我需要能够从他们的整体健康分数中重新排列一组人.我可以用int来做一个compareTO方法,但是只要它有双打,我就会错误地飞到各处.

public double compareTo(FitnessScore o){
    return (this.overall-o.overall);
}
Run Code Online (Sandbox Code Playgroud)

它需要是双倍的,因为有得分如下:

68.5 68.4 60.1 60.3
Run Code Online (Sandbox Code Playgroud)

因此将它们转换为int会使它变得多余.当我确实把它作为一个int来看它是否会起作用.我尝试了以下内容.(主题是我初始化的数组,用于保存所有不同的人物实例)

Arrays.sort(subjects);
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

java.lang.NullPointerExceptione
Run Code Online (Sandbox Code Playgroud)

有什么建议?

java

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

无法比较用户定义的对象进行排序(Java 8)

我有以下课程 -

public class Pair
{
    public double value;
    int id;

    Pair(){
        value=0;
        id=0;
    }
    Pair(double value, int id){
        this.value=value;
        this.id=id;
    }
}
Run Code Online (Sandbox Code Playgroud)

PairComparator类用于实现Comparator类

public class PairComparator implements Comparator<Pair>{
    @Override
    public int compare(Pair p1, Pair p2){
        return (int)(p2.value-p1.value);
    }
}
Run Code Online (Sandbox Code Playgroud)

我正在尝试按如下方式对Pair集合进行排序 -

List<Pair> list= new ArrayList<Pair>();
list.add(new Pair(5.2, 4));
list.add(new Pair(3.4, 5));
list.add(new Pair(10.3, 3));

Collections.sort(list, new PairComparator());
Run Code Online (Sandbox Code Playgroud)

但是我得到了以下错误 -

`线程中的异常"main"java.lang.IllegalArgumentException:比较方法违反了它的一般合同!

Exception in thread "main" java.lang.IllegalArgumentException: Comparison method violates its general contract!
at java.util.TimSort.mergeHi(TimSort.java:895)
at java.util.TimSort.mergeAt(TimSort.java:512)
at java.util.TimSort.mergeCollapse(TimSort.java:435)
at java.util.TimSort.sort(TimSort.java:241) …
Run Code Online (Sandbox Code Playgroud)

java sorting collections

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

标签 统计

java ×3

collections ×1

equality ×1

floating-accuracy ×1

sorting ×1