224 votes

comment trier une ArrayList en Java

J'ai une classe nommée Fruit. Je crée une liste de cette classe et ajoute chaque fruit dans chaque objet. Je souhaite trier cette liste en fonction de l'ordre du nom.

 public class Fruit{

    private String fruitName;
    private String fruitDesc;
    private int quantity;

    public String getFruitName() {
        return fruitName;
    }
    public void setFruitName(String fruitName) {
        this.fruitName = fruitName;
    }
    public String getFruitDesc() {
        return fruitDesc;
    }
    public void setFruitDesc(String fruitDesc) {
        this.fruitDesc = fruitDesc;
    }
    public int getQuantity() {
        return quantity;
    }
    public void setQuantity(int quantity) {
        this.quantity = quantity;
    }
}
 

et je crée sa liste en utilisant pour la boucle

 List<Fruit>  fruits= new ArrayList<Fruit>();

Fruit fruit;
for(int i=0;i<100;i++)
{
   fruit = new fruit();
   fruit.setname(...);
   fruits.add(fruit);
}
 

et je dois trier cet artiste en utilisant le nom du fruit dans chaque objet de la liste

Comment??

426voto

Prabhakaran Points 10003
 List<Fruit>  fruits= new ArrayList<Fruit>();

Fruit fruit;
for(int i=0;i<100;i++)
{
  fruit = new fruit();
  fruit.setname(...);
  fruits.add(fruit);
}

//Sorting
Collections.sort(fruits, new Comparator<Fruit>() {
        @Override
        public int compare(Fruit  fruite1, Fruit  fruite2)
        {

            return  fruite1.fruitName.compareTo(fruite2.fruitName);
        }
    });
 

Maintenant, votre liste de fruits est triée en fonction du nom du fruit.

92voto

Bhumika Thaker Points 3150

Implémenter une interface comparable à Fruit.

 public class Fruit implements Comparable {
 

Il implémente la méthode

 @Override
    public int compareTo(Fruit fruit) {
        //write code here for compare name
    }
 

Puis appelez la méthode de tri

 Collections.sort(fruitList);
 

14voto

newuser Points 3563

Essayez BeanComparator

 BeanComparator fieldComparator = new BeanComparator(
                "fruitName");
Collections.sort(fruits, fieldComparator);
 

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X