Cara semacam ArrayList di Java

Saya memiliki sebuah kelas yang bernama Buah. Saya membuat daftar dari kelas ini, dan menambahkan setiap buah dalam daftar. Saya ingin mengurutkan daftar ini berdasarkan perintah dari nama buah.

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

dan saya membuat daftar menggunakan for loop

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

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

dan saya perlu semacam ini arrayList menggunakan nama buah dari masing-masing objek dalam daftar

bagaimana??

Mengomentari pertanyaan (1)
Larutan

Menggunakan Pembanding seperti ini:

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

Sekarang anda buah-buahan daftar ini diurutkan berdasarkan fruitName.

Komentar (7)

Menerapkan Sebanding antarmuka untuk Buah.

public class Fruit implements Comparable {

Menerapkan metode

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

Kemudian lakukan panggilan semacam metode

Collections.sort(fruitList);
Komentar (4)

Mencoba BeanComparator dari Apache Commons.

import org.apache.commons.beanutils.BeanComparator;

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