SORU
6 Mayıs 2010, PERŞEMBE


Sıralama özelliği ile özel Nesne ArrayList

ArrayLists ama bu örneklerin hepsi bir Karşılaştırıcı kullanarak sıralama hakkında insanlar bazı araştırmalara göre Dizeleri için bir yöntem compareTo eskiden okudum.

Onların özelliklerinden biri tarafından özel bir nesne ArrayList sıralamak istedim: bir Tarih nesnesi (getStartDay()). Normal bir şey gibi yazmak mümkün olup olmadığını merak ettim item1.getStartDate().before(item2.getStartDate()) tarafından onlara benzetiyorum:

public class customComparator {
    public boolean compare(Object object1, Object object2) {
        return object1.getStartDate().before(object2.getStartDate());
    }
}

public class randomName {
    ...
    Collections.sort(Database.arrayList, new customComparator);
    ...
}

CEVAP
6 Mayıs 2010, PERŞEMBE


Date uygular beri Comparable, String gibi compareTo bir yöntemi vardır.

Özel karşılaştırıcı şöyle:

public class CustomComparator implements Comparator<MyObject> {
    @Override
    public int compare(MyObject o1, MyObject o2) {
        return o1.getStartDate().compareTo(o2.getStartDate());
    }
}

(compare() yöntemi için planladığın gibi doğrudan karşılık veremeyeceğini çok int boolean neyse dönmelidir.)

Sıralama kodunuzu yazdığın gibi olur:

Collections.sort(Database.arrayList, new CustomComparator());


Doğrudan soru ile ilgili olmayan küçük noktalar bir çift vardır:

  1. Kongre tarafından, sınıfları, yöntemleri ve Değişkenler küçük harfle başlar iken büyük harf bir harf ile başlamalı. CustomComparator karşılaştırıcı adını değiştirdim.
  2. Javadocs kullanın. Eğer Java ile çalışmaya devam edersen çok değerli olacaklar.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Caroline Martin

    Caroline Mar

    19 EYLÜL 2008
  • Makeup Lover

    Makeup Lover

    12 HAZİRAN 2011
  • Blu animations and other videos

    Blu animatio

    15 HAZİRAN 2007