يمكنك أولاً إلقاء نظرة على هذه الطريقة الثابتة الثابتة الثابتة <T> فرز الفراغ (قائمة <T> القائمة ، المقارنة <؟ Super T> C)
1. تحديد نموذج أولا:
نسخة الكود كما يلي:
نموذج الحزمة
/**
* user.java
*
* Author Liang WP 3 مارس 2014
*/
مستخدم الطبقة العامة
{
اسم المستخدم الخاص بالسلسلة الخاصة ؛
استخدام int الخاص ؛
المستخدم العام ()
{
}
المستخدم العام (اسم مستخدم السلسلة ، int userage)
{
this.username = اسم المستخدم ؛
this.userage = userage ؛
}
السلسلة العامة getUsername ()
{
إرجاع اسم المستخدم ؛
}
اسم setusername public void (اسم مستخدم السلسلة)
{
this.username = اسم المستخدم ؛
}
الجمهور int getUserage ()
{
إرجاع الاستخدام ؛
}
setUserage public void (int userage)
{
this.userage = userage ؛
}
}
2. ثم حدد المقارنة ، وتنفيذ واجهة java.util.comparator ، وكتابة قواعد المقارنة في طريقة المقارنة ():
نسخة الكود كما يلي:
حزمة استخدام
استيراد java.util.comparator ؛
استيراد نموذج.
/**
* المقارنة
*
* Author Liang WP 3 مارس 2014
*/
يقوم المقارنة بين الفئة العامة بتنفيذ المقارنة <Sether>
{
@تجاوز
Public Int مقارنة (User Arg0 ، user arg1)
{
// قارن الأسماء أولاً
int flag = arg0.getUserName (). compareto (arg1.getUserName ()) ؛
// إذا كان الاسم هو نفسه ، فسيتم مقارنته بالعمر
إذا (العلم == 0)
{
return arg0.getuserage () - arg1.getuserage () ؛
}
العلم العودة
}
}
3. عند الفرز ، استخدم طريقة Sort (قائمة ، المقارنة C) في java.util.collections:
نسخة الكود كما يلي:
اختبار الحزمة
استيراد java.util.arraylist ؛
استيراد java.util.collections ؛
استيراد java.util.list ؛
استيراد util.comparatoruser ؛
استيراد نموذج.
/**
* testapp.java
*
* Author Liang Weiping 3 مارس 2014
*/
اختبار الطبقة العامة
{
الفراغ الثابت العام الرئيسي (سلسلة [] Arg0)
{
قائمة <Sether> userList = new ArrayList <Sether> () ؛
// إدراج البيانات
userList.add (مستخدم جديد ("A" ، 15)) ؛
userList.add (مستخدم جديد ("B" ، 14)) ؛
userList.add (مستخدم جديد ("A" ، 14)) ؛
// نوع
collections.sort (userlist ، new ComparatorUser ()) ؛
// طباعة النتيجة
لـ (المستخدم u: قائمة المستخدمين)
{
System.out.println (U.GetUserName () + "" + U.GetUserage ()) ؛
}
}
}
4. نتائج التشغيل:
نسخة الكود كما يلي:
14
15
ب 14