ما هي واجهة المقارنة في Java مع أمثلة؟

Ma Hy Wajht Almqarnt Fy Java M Amthlt



في Java ، يتم استخدام واجهة المقارنة لتحديد وظيفة المقارنة التي يمكن استخدامها لفرز مجموعة من الكائنات. يسمح بفرز الكائنات بناءً على معايير مخصصة بدلاً من المقارنة الافتراضية بناءً على الترتيب الطبيعي. لديها العديد من التطبيقات لتخصيص الوظائف وفقًا للاحتياجات. تشرح هذه المقالة واجهة المقارنة بالإضافة إلى العديد من الأمثلة في Java.

ما هي واجهة المقارنة في Java مع أمثلة؟

تحتوي واجهة المقارنة على طرق المقارنة () والمساواة (). يتم استخدام الطريقة الأولى لحساب كائنين بإرجاع قيمة عدد صحيح. يتم استخدام الطريقة الأخرى لحساب كائنين للمقارنة من أجل المساواة.

فيما يلي أمثلة مختلفة لكيفية استخدام واجهة المقارنة في Java:







مثال 1: فرز قائمة على أساس الطول

في هذا المثال ، يتم النظر في قائمة السلاسل وترتيبها بناءً على طولها بدلاً من الترتيب الأبجدي:



يستورد java.util.ArrayList ؛

يستورد java.util.collections ؛

يستورد java.util.Adparator ؛

يستورد java.util.List ؛

عام فصل رئيسي {

عام ثابتة فارغ رئيسي ( خيط [ ] أرجس ) {

قائمة < خيط > قائمة = جديد ArrayList <> ( ) ؛

قائمة. يضيف ( 'جون' ) ؛

قائمة. يضيف ( 'بوب' ) ؛

قائمة. يضيف ( 'أليس' ) ؛

المجموعات . نوع ( قائمة ) ؛

نظام . خارج . println ( قائمة ) ؛

المجموعات . نوع ( قائمة، جديد StringLengthComparator ( ) ) ؛

نظام . خارج . println ( قائمة ) ؛

}

} // يتم تعريف فئة

فصل StringLengthComparator الأدوات المقارن < خيط > {

عام int يقارن ( خيط s1 ، خيط s2 ) {

يعود عدد صحيح . يقارن ( ق 1. طول ( ) , s2. طول ( ) ) ؛

}

}

وصف الكود أعلاه موضح أدناه:



  • أولاً ، قم بإنشاء فئة مقارنة مخصصة تسمى StringLengthComparator تقوم بتنفيذ واجهة المقارنة .
  • فهو يتجاوز طريقة المقارنة () لمقارنة طول سلسلتين.
  • في النهاية ، قم بتمرير مثيل إلى طريقة .sort () لفرز القائمة باستخدام أداة المقارنة المخصصة لدينا.

انتاج |





الناتج الأول هو نتيجة فرز القائمة باستخدام الترتيب الطبيعي ، بينما الناتج الثاني هو نتيجة فرز القائمة باستخدام المقارنة المخصصة لدينا بناءً على طول كل سلسلة.



مثال 2: فرز الكائنات بناءً على حقل معين

يتم إجراء مثال آخر لفرز الكائنات بناءً على حقل معين. يتم استخدام واجهة المقارنة لتحقيق ذلك:

يستورد java.util.ArrayList ؛

يستورد java.util.collections ؛

يستورد java.util.Adparator ؛

يستورد java.util.List ؛

عام فصل رئيسي {

عام ثابتة فارغ رئيسي ( خيط [ ] أرجس ) {

قائمة < شخص > الأشخاص = جديد ArrayList <> ( ) ؛ // تعيين الاسم والعمر والرواتب

الأشخاص. يضيف ( جديد شخص ( 'أليس' و 25 و 50000 ) ) ؛

الأشخاص. يضيف ( جديد شخص ( 'بوب' و 30 و 75000 ) ) ؛

الأشخاص. يضيف ( جديد شخص ( 'تشارلي' و عشرين و 40000 ) ) ؛

المقارن < شخص > الراتب = جديد المقارن < شخص > ( ) {

// فرز الأشخاص على أساس الراتب

عام int يقارن ( الشخص p1 ، الشخص p2 ) {

يعود عدد صحيح . يقارن ( p2. الحصول على الراتب ( ) ، ص 1. الحصول على الراتب ( ) ) ؛

}

} ؛

المجموعات . نوع ( الأشخاص ، الراتب المقارنة ) ؛ يعود فرز القيم

// طباعة قائمة مرتبة بالأشخاص

ل ( شخص شخص : الأشخاص ) {

نظام . خارج . println ( شخص ) ؛

}

}

}

فصل شخص { // تحديد الاسم والعمر والراتب

خاص خيط اسم ؛ // النطاق داخل الفصل
خاص int عمر ؛
خاص int مرتب ؛

عام شخص ( خيط اسم، int عمر، int مرتب ) {
هذا . اسم = اسم ؛
هذا . عمر = عمر ؛
هذا . مرتب = مرتب ؛
}
عام خيط getName ( ) {
يعود اسم ؛
}
عام int getAge ( ) {
يعود عمر ؛
}
عام int الحصول على الراتب ( ) {
يعود مرتب ؛
}
عام خيط إلى سلسلة ( ) {
يعود اسم + ' (عمر ' + عمر + '، الراتب $' + مرتب + ')' ؛
}
}

وصف الكود موضح أدناه:

  • فئة تسمى ' شخص 'مع ثلاثة مجالات:' اسم '،' عمر '، و ' مرتب 'يعتبر.
  • بعد ذلك ، قم بفرز مجموعة من كائنات الشخص بناءً على راتبه بترتيب تنازلي.

انتاج |

توضح المخرجات أنه تم فرز الرواتب بترتيب تنازلي.

خاتمة

في Java ، تعد واجهة المقارنة أداة قوية تسمح للمستخدمين بفرز الكائنات بناءً على معايير مخصصة. تتجاوز طريقة المقارنة () ، يمكن للمستخدمين تحديد وظيفة المقارنة الخاصة بهم واستخدامها لفرز مجموعات الكائنات بطرق متنوعة. تشرح هذه المقالة واجهة المقارنة مع أمثلة عملية في Java.