如何在Java中对ArrayList进行sorting

我有一个名为水果的类。 我正在创build这个类的列表,并在列表中添加每个水果。 我想根据水果名称的顺序对这个列表进行sorting。

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

我正在使用for循环创build它的列表

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

我需要使用列表中的每个对象的水果名称sorting此arrayList

怎么样??

使用像这样的Comparator

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

现在你的水果列表是基于fruitNamesorting的。

实现水果的可比较接口。

 public class Fruit implements Comparable<Fruit> { 

它实现了这个方法

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

然后调用sorting方法

 Collections.sort(fruitList); 

尝试BeanComparator

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