يحكي مثال هذه المقالة الطريقة المشتركة لكائنات قائمة في Java. شاركه للجميع للرجوع إليه. التحليل المحدد هو كما يلي:
في القائمة المكتشفة في قاعدة البيانات ، غالبًا ما يتم فرز الحقول المختلفة. إذا لم يكن الاستفسار في قاعدة البيانات ، فإن الفرز مباشرة في القائمة الأولى التي تم العثور عليها سيؤدي بلا شك إلى تحسين أداء النظام.
طالما يتم تخزين النتائج الأولى المكتشفة في الجلسة ، يمكنك فرز القائمة. بشكل عام ، يمكن استخدام فرز القائمة في المجموعات. فكيف يمكنك فرزها؟ إذا كان هناك كائن userInfo ، فإنه يحتوي على الحقل التالي:
private java.lang.integer.
لذا تحتاج الآن إلى فرز معرف المستخدم ، يمكنك استخدام الطريقة التالية:
collections.sort (list ، new comparator () {public int compare (object a ، object b) {int one = ((order) a) .getuserId () ؛ int two = (order) b) .getuserId () ؛ إرجاع اثنين ؛}}) ؛
وبهذه الطريقة ، إذا كنت ترغب في فرز كل حقل من قائمة userinfo ، فهل مكتوبة بواسطة شريحة كما هو موضح أعلاه في كل حقل؟ هذه ليست النتيجة التي نحتاجها. كتابة البرنامج أكثر دقة ، ولا يمكنك كتابة المزيد والمزيد من الحاجة. هل يمكنك كتابة طريقة عامة؟ الجواب نعم ، ولكن بادئ ذي بدء ، يجب أن نحل الأسئلة الثلاثة التالية:
1. يمكن استخدام النوع العام.
2. كونها طريقة مقارنة شائعة ، مثل المقارنة ؛
3. هل هناك طريقة مقلاة مثل الطرق العامة والعامة؟
يمكن حل المشكلة الأولى. العدد الثالث ليس له طريقة مقلاة نحتاجها. ولكن هل يمكننا تغييره واستخدام GetMethod واستدعاء طرق لأخذ الأساليب ديناميكيًا. الرمز كما يلي:
sortlist الفئة العامة <e> {public void sort (قائمة <e> ، طريقة السلسلة النهائية ، فرز السلسلة النهائية) {collections.sort (قائمة ، مقارن جديد () {public int compare (o. bky a ، object b) { int ret = 0 ؛ يساوي (النوع) // المقلوب ((((((e) b) ، null) .tring (). المقارنة (((e) a) ، null) .tring ()) ؛ = m1.invoke ((((e) a) ، null) .tring (). المقارنة (m2.invoke ((e) b) ، null) .tring () ؛} catch (nosuchmethodexception ne) {system.out. println (ne) ؛} catch (alfictAccessexception ie) {system.out.println (ie) ؛
عند النظر إلى الكود أعلاه ، هل نجحنا في حل المشكلات الثلاث المذكورة أعلاه وأضفوا ترتيب الاتجاه الصعودي. لا توجد كائنات وأنواع محددة في الكود ، وهي متعددة الاستخدامات بالفعل. : على سبيل المثال ، "على سبيل المثال" getuserid ". يمكنك استخدام الرمز الوارد أدناه للاختبار:
//test.javapackage = ArrayList جديد <SetherInfo> () ؛ 11)) ؛ Out.println ("------- التسلسل الأصلي --------------------------------- ------------------- "" ") ؛ } // استدعاء قائمة الفئة العالمية <SeterInfo> sortlist = new Sortlist <SetherInfo> () ؛ ---------------------------------------------- {system.out.println (user.toString ()) ؛} // اضغط على اسم المستخدم ------------------------------------------------- ------------------------------------------------- --- ") ؛) ؛} // sortlist.sort (قائمة ،" getBithDatester "، null) ؛ system.out.println (" ------------------- ------------- ------------------------------- ") ؛ لـ (المستخدم المستخدم: قائمة) { system.out.println (user.toString ()) ؛}}}
نتائج الاختبار كما يلي:
------- التسلسل الأصلي ----------------------------------- ------------------------------------------------- ------------------------------------------------- ------------------------------------------------- ------------------------------ 3 ؛ 10-01 ؛ 3 ----- 2 ------------------------------------------------- ------------------------------------------------- --------------------------- -------- 2 ؛ -11 ؛
ملاحظة: يتم تحويل فرز التاريخ أولاً بالتنسيق ، وإلا فلن تكون هناك نتيجة صحيحة.
من المأمول أن يكون هذا المقال مفيدًا لتصميم برنامج Java للجميع.