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
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:
- 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. - Javadocs kullanın. Eğer Java ile çalışmaya devam edersen çok değerli olacaklar.
PHP nesne özelliği ile dizi sıralama?...
((yeni nesne) kilit -- Kargo kültü ya ...
Özel C JSON Nesne Dönüştürme# nesne?...
Sıralama Tarihe Göre Nesne Dizisi Java...
Tarihe göre ArrayList nesneleri sırala...