2010-11-22 4 views
0

Salut J'ai une arrayList qui a quelques objets.aussi mes objets a deux champs (1) nom (2) coût Je veux trier cette arrayList avec son coût cost.is il y a une méthode spéciale qui le fait pour moi ou Je l'écris moi-même? même s'il y a une méthode pour a révélé dans ce, quelle est sa complexité temporelle (O (n), (O (n log n))?Tri d'une ArrayList en fonction d'un champ?

grâce

Répondre

4

Si vous aimez taper saftey (sans utiliser BeanComparator), alors vous devez écrire votre propre comparateur

par exemple.

Collections.sort(list, new Comparator<SomeType>() { 
    public int compareTo(SomeType lhs, SomeType rhs) { 
     return lhs.getCost().compareTo(rhs.getCost()); 
    } 
}); 

Notez que ce n'est pas un null null (le coût peut être nul). L'autre option consisterait à utiliser BeanComparator, mais assurez-vous d'ajouter un test qui garantit que le tri fonctionne toujours dans le cas où le nom de la méthode change.

2

Vous pouvez utiliser la méthode Collections.sort() pour le tri, si vous implémentez l'interface Comparator pour les objets qui doivent être comparés.

Questions connexes