الطريقة 1: تنفيذ واجهة المقارنة وتجاوز طريقة المقارنة
رمز فئة الكيان:
استيراد java.util.comparator ؛/*** طريقة فئة الطالب 1* قم بتنفيذ واجهة المقارنة* والكتابة فوق طريقة المقارنة* Author liaot**/طالب الفئة العامة يطالبون المقارن <Student> {اسم السلسلة الخاصة ؛ // اسم العصر الخاص // age/rewrite طريقة المقارنة يتم تعريف هذا المثال على أنه مقارنة حسب Age Override public int (الطالب O1 ، الطالب O2) {if (o1.getage ()> o2.getage ()) {return 1 ؛ } آخر {return -1 ؛ }} الطالب العام (اسم السلسلة ، int age) {super () ؛ this.name = name ؛ this.age = العمر ؛ } السلسلة العامة getName () {return name ؛ } public void setName (اسم السلسلة) {this.name = name ؛ } public int getage () {return Age ؛ } public void setage (int age) {this.age = age ؛ }}فئة الاختبار:
استيراد java.util.arraylist ؛ استيراد java.util.collections ؛ استيراد java.util.list ؛ الطبقة العامة الرئيسية {public static void main (string [] args) {// تهيئة أربعة طلاب مختلفون من طلاب stu1 = جديد ("passy a" ، 20) ؛ الطالب STU2 = طالب جديد ("Passy A" ، 18) ؛ الطالب STU3 = طالب جديد ("Passy C" ، 16) ؛ الطالب STU4 = طالب جديد ("Passy C" ، 19) ؛ // قم بإنشاء قائمة جديدة لإضافة الطلاب إلى قائمة القائمة <Tudent> Stulist = new ArrayList <> () ؛ Stulist.add (STU1) ؛ Stulist.add (STU2) ؛ Stulist.add (STU3) ؛ Stulist.add (STU4) ؛ System.out.println ("قبل الفرز: ======") ؛ من أجل (Stu Stu: Stulist) {system.out.println ("الاسم:"+stu.getName ()+"Age"+stu.getage ()) ؛ } // collections.sort (Stulist ، Stu1) ؛ // المعلمة الأولى هي قائمة المعلمة الثانية هي مثيل لنظام الكائن. من أجل (Stu Stu: Stulist) {system.out.println ("الاسم:"+stu.getName ()+"Age"+stu.getage ()) ؛ }}}نتائج التشغيل:
الطريقة 2: تنفيذ الواجهة المماثلة وتجاوز طريقة المقارنة
/** * طريقة فئة الطالب 2 تنفذ واجهة قابلة للمقارنة ويعيد كتابة طريقة المقارنة * * Author Liaot * */Public Class Student2 يطبق قابلة للمقارنة <Student2> {اسم السلسلة الخاصة ؛ // اسم العصر الخاص // Age // أعد كتابة طريقة المقارنة يتم تعريف هذا المثال على أنه مقارنة حسب Age Override public int compareto (student2 stu) {if (this.age> stu.getage ()) {return 1 ؛ } آخر {return -1 ؛ }} public student2 (اسم السلسلة ، int age) {super () ؛ this.name = name ؛ this.age = العمر ؛ } السلسلة العامة getName () {return name ؛ } public void setName (اسم السلسلة) {this.name = name ؛ } public int getage () {return Age ؛ } public void setage (int age) {this.age = age ؛ }}فئة الاختبار
استيراد java.util.arraylist ؛ استيراد java.util.collections ؛ استيراد java.util.list ؛ الطبقة العامة main2 {public static void main (string [] args) {// تهيئة أربعة طلاب مختلفين stu1 = new student2 ("pasy a" ، 20) ؛ student2 stu2 = new student2 ("passy a" ، 18) ؛ student2 stu3 = new student2 ("passy c" ، 16) ؛ student2 stu4 = new student2 ("passy c" ، 19) ؛ // قم بإنشاء قائمة جديدة لإضافة الطلاب إلى قائمة القائمة <Tudent2> Stulist = new ArrayList <> () ؛ Stulist.add (STU1) ؛ Stulist.add (STU2) ؛ Stulist.add (STU3) ؛ Stulist.add (STU4) ؛ System.out.println ("قبل الفرز: ======") ؛ لـ (student2 stu: stulist) {system.out.println ("name:"+stu.getName ()+"Age"+stu.getage ()) ؛ } // sort collections.sort (Stulist) ؛ // معلمة واحدة فقط هي قائمة system.out.println ("sorted: ======") ؛ لـ (student2 stu: stulist) {system.out.println ("name:"+stu.getName ()+"Age"+stu.getage ()) ؛ }}}نتائج التشغيل
3. الملخص: الفرق بين الكتابة واستخدام الطريقتين:
طريقة فرز Java أعلاه وفقًا لسمات الكائنات في القائمة هي كل المحتوى الذي أشاركه معك. آمل أن يعطيك مرجعًا وآمل أن تتمكن من دعم wulin.com أكثر.