English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
في هذا البرنامج، ستتعلم كيفية ترتيب ArrayList من الأوبجكتات المخصصة بناءً على الخاصية المحددة في Java.
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<Customobject> 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()); } } }
عند تشغيل هذا البرنامج، سيتم عرض:
A Aa B X Z
في البرنامج السابق، قمنا بتعريف فئة CustomObject تحتوي على خاصية String customProperty
أضفنا أيضًا بناءً على خاصية التخصيص، ونحن نقدم وظيفة الحصول على customProperty باستخدام getCustomProperty()
في طريقة main()، قمنا بإنشاء قائمة من الأفراد الخاصة بفئة CustomObject وتم تخصيصها باستخدام خمس أفراد.
للترتيب القائمة بناءً على الخاصية المحددة، نستخدم طريقة sort() الخاصة بالقائمة. تقبل طريقة sort() القائمة التي تريد ترتيبها (القائمة التي يتم ترتيبها في النهاية هي نفسها) ومحسن مقارنة
في هذه الحالة، هو المبرمج هو تعبير lambda
استخراج اثنين من العناصر من القائمة o1 وo2
استخدام compareTo() لتحديد مقارنة بين customProperty لكل من العناصر
إذا كانت الخاصية الخاصة بo1 أكبر من الخاصية الخاصة بo2، يتم العودة إلى عدد إيجابي في النهاية؛ إذا كانت الخاصية الخاصة بo1 أصغر من الخاصية الخاصة بo2، يتم العودة إلى عدد سالب في النهاية؛ إذا كانت متساوية، يتم العودة إلى صفر.
على هذا الأساس، يتم ترتيب القائمة (list) من الأصغر إلى الأكبر بناءً على الخاصية الأصغر إلى الخاصية الأكبر، ثم يتم حفظها في القائمة (list) مرة أخرى