Bu programda, özel nesnenin bir dizi listesini Java'da verilen özelliğine göre sıralamayı öğreneceksiniz.
Bu örneği anlamak için, aşağıdaki Java programlama konuları hakkında bilgi sahibi olmalısınız:
- Java Sınıfı ve Nesneleri
- Java ArrayList Sınıfı
Örnek: Özel Nesnelerin Dizi Listesini Özelliğe Göre Sıralama
import java.util.*; public class CustomObject ( private String customProperty; public CustomObject(String property) ( this.customProperty = property; ) public String getCustomProperty() ( return this.customProperty; ) public static void main(String() args) ( ArrayList list = new ArrayList(); list.add(new CustomObject("Z")); list.add(new CustomObject("A")); list.add(new CustomObject("B")); list.add(new CustomObject("X")); list.add(new CustomObject("Aa")); list.sort((o1, o2) -> o1.getCustomProperty().compareTo(o2.getCustomProperty())); for (CustomObject obj : list) ( System.out.println(obj.getCustomProperty()); ) ) )
Çıktı
A Aa BXZ
Yukarıdaki programda , customProperty özelliğine CustomObject
sahip bir sınıf String
tanımladık.
Ayrıca, özelliği getCustomProperty()
başlatan bir yapıcı ve customProperty döndüren bir alıcı işlevi ekledik.
In main()
yöntemle, biz 5 nesnelerle başlatıldı özel nesneler listesinin bir dizi listesi oluşturduk.
Listeyi verilen özellik ile sıralamak için list sort()
yöntemini kullanırız. sort()
Yöntem sıralanacak listesini (nihai sıralanmış listesi de aynıdır) ve alır comparator
.
Bizim durumumuzda, karşılaştırıcı bir lambda'dır ve
- o1 ve o2 listesinden iki nesne alır,
compareTo()
yöntemi kullanarak iki nesnenin customProperty özelliğini karşılaştırır ,- ve son olarak eğer o1'in özelliği o2'den büyükse pozitif sayı, o1'in özelliği o2'lerden küçükse negatif ve eşitse sıfır döndürür.
Buna göre liste, en az özellikten en büyüğe doğru sıralanır ve listeye geri kaydedilir.