Cum pentru a sorta un ArrayList în Java

Am o clasă de nume de Fructe. Am creat o listă de această clasă și adăugarea de fiecare fruct în listă. Vreau pentru a sorta această listă în funcție de ordinea de nume de fructe.

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

și eu sunt crearea lista folosind pentru buclă

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

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

și am nevoie pentru a sorta această arrayList folosind numele de fructe de fiecare obiect din listă

cum????

Comentarii la întrebare (1)
Soluția

Utilizați un "Comparator" astfel:

List fruits= new ArrayList();

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

// Sorting
Collections.sort(fruits, new Comparator() {
        @Override
        public int compare(Fruit fruit2, Fruit fruit1)
        {

            return  fruit1.fruitName.compareTo(fruit2.fruitName);
        }
    });

Acum fructele lista este sortata pe baza fruitName.

Comentarii (7)

Aplicare Comparabile interfata de Fructe.

public class Fruit implements Comparable {

Acesta pune în aplicare metoda

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

Apoi face apel metoda de sortare

Collections.sort(fruitList);
Comentarii (4)

Încerca BeanComparator de la Apache Commons.

import org.apache.commons.beanutils.BeanComparator;

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