【发布时间】:2011-04-11 22:35:10
【问题描述】:
我可以很好地比较字符串,但想知道如何对浮点数进行排名?
getChange() 返回一个字符串。我希望能够降序排序。我该怎么做?
更新:
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;
}
}
我收到编译时错误:
This method must return a result of type int ChangeComparator.java
【问题讨论】:
-
除了 NaN 问题,您的代码中没有保证返回语句。实际上你是这样做的,但编译器无法判断,因为你有三个不同的 if 语句。它直到运行时才能评估这些,所以它认为你实际上可以通过最后一个 if 语句并且没有 return 子句。
标签: java sorting arraylist comparator comparable