Hilfe zu Vergleich von float member-Variablen mit Komparatoren

Ich bin in der Lage, vergleichen Sie Zeichenfolgen in Ordnung, aber würde gerne wissen, wie kann ich Rang floating-point-zahlen?

getChange() gibt einen String zurück. Ich möchte in der Lage sein, zu Sortieren und absteigend Sortieren. Wie kann ich dies tun?

UPDATE:

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;
    }
}

Bin ich immer der compile-Zeit-Fehler:

This method must return a result of type int    ChangeComparator.java   
Abgesehen von dem NaN-Problem, Sie haben keinen garantierten return-Anweisung in Ihrem code. Realistisch Sie tun, aber der compiler kann nicht sagen, dass, weil Sie haben drei verschiedene if-Anweisungen. Kann es nicht beurteilen, diejenigen, die erst zur Laufzeit, so dass es denkt, Sie könnte tatsächlich auf den letzten if-Anweisung und es gibt keine return-Klausel.

InformationsquelleAutor Sheehan Alam | 2010-09-14

Schreibe einen Kommentar