224

Fruitという名前のクラスがあります。このクラスのリストを作成し、各果物をリストに追加しています。このリストを果物の名前順に並べ替えたいと思います。

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ループを使用してそのリストを作成しています

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

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

リスト内の各オブジェクトのフルーツ名を使用して、このarrayListをソートする必要があります

どうやって??

4

3 に答える 3

92

Fruit へのComparableインターフェイスを実装します。

public class Fruit implements Comparable<Fruit> {

メソッドを実装しています

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

次に、ソートメソッドを呼び出します

Collections.sort(fruitList);
于 2013-08-26T10:21:28.370 に答える
14

Apache Commonsの BeanComparatorを試してください。

import org.apache.commons.beanutils.BeanComparator;


BeanComparator fieldComparator = new BeanComparator("fruitName");
Collections.sort(fruits, fieldComparator);
于 2013-08-26T10:21:44.773 に答える