Come ordinare un ArrayList in Java

Ho una class chiamata Fruit. Sto creando un elenco di questa class e aggiungendo ogni frutto nell’elenco. Voglio ordinare questo elenco in base all’ordine del nome del frutto.

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

e sto creando la sua lista usando per ciclo

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

e ho bisogno di ordinare questo arrayList usando il nome del frutto di ciascun object nell’elenco

Come??

Usa un Comparator come questo:

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

Ora la tua lista di frutta è ordinata in base a fruitName .

Implementare un’interfaccia comparabile a Fruit.

 public class Fruit implements Comparable { 

Implementa il metodo

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

Quindi chiama il metodo di ordinamento

 Collections.sort(fruitList); 

Prova BeanComparator

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