المقارنة هي واجهة ، والتي يمكن أن تتجاوز طريقتين للمقارنة () و equals () لوظيفة مقارنة الأسعار ؛ إذا كان فارغًا ، فهو يستخدم الترتيب الافتراضي للعناصر ، مثل A ، B ، C ، D ، E ، F ، G ، أي ، A ، B ، C ، D ، E ، F ، G ، بالطبع ، وينطبق الشيء نفسه بالنسبة للأرقام.
قارن (أ ، ب) الطريقة: إرجاع عدد صحيح سلبي ، صفر أو عدد صحيح موجب وفقًا للمعلمة الأولى ، والتي أقل من أو أكبر من المعلمة الثانية.
طريقة متساوية (OBJ): إرجاع صحيح فقط إذا كان الكائن المحدد أيضًا مقارنًا ويتم إجبار نفس النوع الذي يتم إجباره على تنفيذ هذا المقارن.
المعلمة الثانية من collections.sort (قائمة ، pricecomparator () جديدة) ؛ إرجاع قيمة من النوع Int ، والتي تعادل العلم ، ويروي طريقة الفرز بأي ترتيب لفرز القائمة.
طريقة رمز التنفيذ المحددة هي كما يلي:
كتاب كيان فئة:
حزمة com.tjcyjd.comparator ؛ استيراد java.text.decimalformat ؛ استيراد java.text.simpledateformat ؛ استيراد java.util.gregoriancalendar ؛ استيراد java.util.iterator ؛ استيراد java.util.treemap ؛ / ** * كتاب كيان فئة * * Author yjd * */ يقوم كتاب الفئة العامة بتنفيذ قابلة للمقارنة {// تحديد فئة مسماة كتابًا ، والذي يتم موروثه افتراضيًا من فئة الكائن Public int id ؛ // number public string name ؛ // name public double price ؛ // Price Private String Author ؛ // upitor public gregoriancalendar calendar ؛ // publication date public book () {this (0 ، "x" ، 0.0 ، new Gregoriancalendar () ، "") ؛ } الكتاب العام (int id ، اسم السلسلة ، السعر المزدوج ، GregorianCalendar Calendar ، سلسلة مؤلف) {this.id = id ؛ this.name = name ؛ this.price = السعر ؛ this.calendar = التقويم ؛ هذا. مؤلف = مؤلف ؛ }. // تحديد السلسلة التي تعرض معلومات الفئة decimalformat formatprice = new decimalformat ("0.00") ؛ // سعر التنسيق إلى مكانين عشريين swertstr + = "/t" + formatprice.format (السعر) ؛ // سعر التنسيق swertstr + = "/t" + مؤلف ؛ SimplEdateFormat FormatDate = جديد SimplEdateFormat ("Yyyy Year Mm Month DD Day") ؛ showstr + = "/t" + formatdate.format (calendar.getTime ()) ؛ // تنسيق وقت الإرجاع showstr ؛ // إرجاع سلسلة معلومات الفئة} public int compareto (Object OBJ) {// method in interface book b = (book) obj ؛ إرجاع this.id - b.id ؛ // قارن الحجم وفقًا لمعرف الكتاب ، الذي يستخدم للفرز الافتراضي} الفراغ الثابت العام (سلسلة [] args) {Book B1 = New Book (10000 ، "Dream of Red Ramber" ، 150.86 ، New Gregoriancalendar (2009 ، 01 ، 25) ، "Cao Xueqin ، Gao e") ؛ Book B2 = كتاب جديد (10001 ، "رومانسية الممالك الثلاث" ، 99.68 ، غريغوريانكالندر نيو (2008 ، 7 ، 8) ، "لوو جوانتشونغ") ؛ الكتاب B3 = كتاب جديد (10002 ، "هامش المياه" ، 100.8 ، غريغوريانكالندر نيو (2009 ، 6 ، 28) ، "شي نايان") ؛ Book B4 = كتاب جديد (10003 ، "رحلة إلى الغرب" ، 120.8 ، غريغوريانكالندر نيو (2011 ، 6 ، 8) ، "وو تشنغن") ؛ الكتاب B5 = كتاب جديد (10004 ، "The Legend of the Condor Heroes" ، 10.4 ، New Gregoriancalendar (2011 ، 9 ، 23) ، "Sohu") ؛ treemap tm = new treemap () ؛ TM.Put (B1 ، عدد صحيح جديد (255)) ؛ TM.Put (B2 ، عدد صحيح جديد (122)) ؛ TM.Put (B3 ، عدد صحيح جديد (688)) ؛ TM.Put (B4 ، عدد صحيح جديد (453)) ؛ TM.Put (B5 ، عدد صحيح جديد (40)) ؛ iterator it = tm.KeySet (). iterator () ؛ مفتاح الكائن = فارغ ، القيمة = فارغة ؛ كتاب bb = null ؛ بينما (it.hasnext ()) {key = it.next () ؛ BB = (كتاب) مفتاح ؛ القيمة = tm.get (مفتاح) ؛ system.out.println (bb.toString () + "/t stick:" + tm.get (key)) ؛ }}} فئات المقارنة والاختبار المخصصة:
حزمة com.tjcyjd.comparator ؛ استيراد java.util.arraylist ؛ استيراد java.util.collections ؛ استيراد java.util.comparator ؛ استيراد java.util.gregoriancalendar ؛ استيراد java.util.iterator ؛ استيراد java.util.list ؛ الفئة العامة usecomparator {public static void main (string args []) {list <book> list = new ArrayList <Book> () ؛ // Array Sequence Book B1 = New Book (10000 ، "Dream of Red Mansions" ، 150.86 ، New Gregoriancalendar (2009 ، 01 ، 25) ، "Cao Xueqin ، Gao E") ؛ Book B2 = كتاب جديد (10001 ، "رومانسية الممالك الثلاث" ، 99.68 ، غريغوريانكالندر نيو (2008 ، 7 ، 8) ، "لوو جوانتشونغ") ؛ الكتاب B3 = كتاب جديد (10002 ، "هامش المياه" ، 100.8 ، غريغوريانكالندر نيو (2009 ، 6 ، 28) ، "شي نايان") ؛ Book B4 = كتاب جديد (10003 ، "رحلة إلى الغرب" ، 120.8 ، غريغوريانكالندر نيو (2011 ، 6 ، 8) ، "وو تشنغن") ؛ الكتاب B5 = كتاب جديد (10004 ، "Tianlong Baba" ، 10.4 ، New Gregoriancalendar (2011 ، 9 ، 23) ، "Sohu") ؛ list.add (b1) ؛ list.add (b2) ؛ list.add (b3) ؛ list.add (b4) ؛ list.add (b5) ؛ // collections.sort (list) ؛ // لا يوجد مقارنة افتراضية ، system.out.println ("عناصر في تسلسل صفيف:") ؛ myPrint (قائمة) ؛ collections.sort (قائمة ، جديد pricecomparator ()) ؛ // sort by price system.out.println ("Forted by Book Price:") ؛ myPrint (قائمة) ؛ collections.sort (قائمة ، تقويم جديد ()) ؛ // sort by time system.out.println ("تم فرزها بواسطة كتاب باطل ثابت عام myPrint (قائمة <book>) it.next () P2.price) ؛ في كتاب الواجهة p1 = (كتاب) Object1 ؛ // casting book p2 = (book) object2 ؛ return p2.calendar.compareto (p1.calendar) ؛ }}}ما سبق هو كل محتوى هذه المقالة. آمل أن يكون ذلك مفيدًا لتعلم الجميع وآمل أن يدعم الجميع wulin.com أكثر.