私はいくつかの文字列パラメータを持つクラスを持っています。このオブジェクトからインスタンスのリストを作成しました。そして、私はコンパイラのソート機能を使ってリストを別のトピックでソートしました。たとえば、StartTimeまたはEndTimeで指定します。時間は文字列形式で定義されます。ここでは、ソートのための比較関数である:パラメータによるソートとオブジェクト
if (sortType == Sort.STARTTIME){
Collections.sort(routeList, new Comparator<Route>() {
@Override
public int compare(Route o1, Route o2) {
if (Double.parseDouble(o1.getTimeS()) >= (Double.parseDouble(o2.getTimeS())))
return 1;
else
return -1;
}
});
}
それは動作しますが、私は>または<または<とコンパレータを変更したときに=が、それは動作しませんサイン!またはendTimeと比較すると、< =としか動作せず、昇順で並べ替えることはできません。私は1と-1の場所を変更することはできません。
if (sortType == Sort.ENDTIME){
Collections.sort(routeList, new Comparator<Route>() {
@Override
public int compare(Route o1, Route o2) {
if ((Double.parseDouble(o1.getTimeE()) <= Double.parseDouble(o2.getTimeE()))))
return 1;
else
return -1;
}
});
}
私は本当にそれで問題があるのか分かりません!!!!!!!
public class Route extends Arc {
private String type;
private int secId;
private String tId;
private int event;
private String name;
private String nameS;
}
private String nameE;
private String timeS;
private String timeE;
.....
}
そして、ここでデータ
57779.999999999985 57779.999999999956 57778.999999999985 57778.99999999994 57778.99999999993 57778.99999999988 57777.0 57777.0 57750.0 57749.99999999994 57734.99999999994 57734.99999999988 57719.999999999985 57719のいくつかの行があります.999999999985
私はdidnのあなたは何を私に話そうとしていますか? -1 -1? –
@omidgholami彼は-1,1、0を意味しました – janos
ああ、申し訳ありませんが、編集のおかげで。 – GhostCat