En comparant les valeurs Longues à l'aide de Collections.de tri(objet)

Je suis en train de trier une simple liste d'objets par un long - le ci-dessous ne fonctionne pas parce que l'une des cordes longues est poussée vers le haut tout simplement parce qu'il commence avec un nombre inférieur. Donc, je suis à la recherche d'un moyen de résoudre ces par le réel à long valeurs directement

L'actuel obj mise en œuvre ressemble à quelque chose comme ci-dessous. Dans la classe, je suis en utilisant ce que j'appel des Collections.de tri(arbres);

public class Tree implements Comparable<Tree> {
    public String dist; //value is actually Long

    public int compareTo(Tree o) {
        return this.dist.compareTo(o.dist);
    }
}
Pourquoi ne pas simplement comparer les valeurs long de dist dans votre compareTo(Arbre o) méthode?
Les chaînes sont comparées par ordre alphabétique (pas vraiment, mais c'est une bonne façon de penser). Par conséquent, les 12 > 111. Si vous avez besoin de comparer des nombres d'utiliser des chiffres, c'est à dire ajouter un champ plus long. Ou, dans le pire des cas, de comparer le résultat de la Longue.parseLong(dist)
En fait, j'ai fait la comparaison d'un double tout le temps - désolé les gars (je suis allé avec le Double.comparer comme ma solution réelle) a décerné ce que je ressentais était une grande réponse à la Longue problème - drapeau pour la suppression si rien d'autre
L'Utilisation 'De Long.comparer(long x, long y)', voir la réponse ci-dessous

OriginalL'auteur Toran Billups | 2011-05-30