Comment trier un ArrayList en Java [dupliquer]
cette question a déjà une réponse ici:
J'ai une classe appelée Fruit. Je crée une liste de cette classe et j'ajoute chaque fruit dans la liste. Je veux trier cette liste en fonction de l'ordre de fruit le 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 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 arrayList en utilisant le nom de fruit de chaque objet dans la liste
comment??
202
demandé sur
dream_world
2013-08-26 14:20:05
3 réponses
utiliser un Comparator
comme ceci:
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 fruit2, Fruit fruit1)
{
return fruit1.fruitName.compareTo(fruit2.fruitName);
}
});
maintenant votre liste de fruits est triée sur la base de fruitName
.
399
répondu
Prabhakaran
2016-01-28 09:19:11
mettre en Œuvre Comparables interface de Fruits.
public class Fruit implements Comparable<Fruit> {
il met en œuvre la méthode
@Override
public int compareTo(Fruit fruit) {
//write code here for compare name
}
, Puis de faire appel de méthode de tri
Collections.sort(fruitList);
87
répondu
bNd
2015-10-05 10:33:53
Try BeanComparator
BeanComparator fieldComparator = new BeanComparator(
"fruitName");
Collections.sort(fruits, fieldComparator);
12
répondu
newuser
2013-08-26 10:27:39