يقدم هذا السؤال طريقتان من النوع () لفئة أدوات المجموعات ، على النحو التالي:
1. طريقتان من نوع () من فئة أدوات المجموعات
التنسيق 1: الثابت العام <t يمتد قابلة للمقارنة <؟ Super T >> فرز الفراغ (قائمة <T> قائمة)
ملاحظة: كل من الأداء الوطني <T> في هذه الطريقة كلها فئات فرعية للواجهة المماثلة ، أي فقط يمكن مقارنة وفرز بيانات نوع الفئة الفرعية للواجهة المماثلة. إذا تم مقارنة أنواع أخرى من البيانات وفرزها ، فيجب أن تكون الواجهة المماثلة موروثة و
تجاوز أساليب () ومقارنة (). من بينها ، فئة السلسلة والفئة الصحيح هما كل من الفئات الفرعية للمقارنة ، ويمكن فرزها ، بينما لا يمكن فرز الأنواع الأساسية. يتم تحديد عناصر المقارنة في الفصل
التنسيق 2: STATIC STATIC <T> SORM (قائمة <T> ، المقارنة <؟ Super T> C)
ملاحظة: تحدد هذه الطريقة مقارنة طريقة المقارنة <؟ Super t> c ، أي ، يجب على C تنفيذ المقارنة <؟ Super T> واجهة ، تجاوز طريقة المقارنة () لتحديد عنصر المقارنة. يتم تحديد عناصر المقارنة خارج الفصل ، وهو أكثر مرونة
2. مثال
طرق شائعة للحصول على سلاسل وأرقام في المثال:
/ *** قم بإنشاء سلاسل عشوائية وغير مبتكرة: الرقم يولد عدد من السلاسل*/ قائمة ثابتة عامة <string> generatestring (int number) {list <string> listString = new ArrayList <> () ؛ // تستخدم لتخزين قائمة قيمة الإرجاع <integer> الطول = null ؛ // طول السلسلة stringbuffer sb = new StringBuffer () ؛ // المتغير المتغير Control = 0 ؛ . "Z" ، "0" ، "1" ، "2" ، "3" ، "4" ، "5" ، "6" ، "7" ، "8" ، "9" ، "A" ، "B" ، "C" ، "D" ، "E" ، ". "S" ، "T" ، "U" ، "V" ، "W" ، "X" ، "y" ، "z"} ؛ بينما (صحيح) {// نهاية التحكم if (control == number) {break ؛ }. SB.SetLength (0) ؛ // احصل على طول السلسلة العشوائية ، والطول ليس 0 do {length = getDiffno (1 ، 11) ؛ } بينما (length.get (0) == 0) ؛ // تصحيح سلسلة معا (int i = 0 ؛ i <length.get (0) ؛ i ++) {String str = uuid.substring (i*3 ، (i*3+3)) ؛ // قم بتحويل سلسلة STR إلى hexadecimal واحصل على القيمة int x = integer.parseint (str ، 16) ؛ // احصل على الباقي: x ٪ 0x3e-0x3e = 3*16 + 14 = 62 ، حيث يحتوي chars على 62 حرفًا sb.append (chars [x ٪ 0x3e]) ؛ } listString.add (sb.toString ()) ؛ Control ++ ؛ } return listString ؛ }/ *** قم بإنشاء أرقام عشوائية وغير مبتذبة: n إنشاء أرقام أقصى نطاق إنشاء Range*/ قائمة ثابتة عامة <integer> getDiffno (int n ، int max) {// إنشاء [0-n] أرقام عشوائية غير مقصودة // قائمة مستخدمة لحفظ قائمة الأرقام العشوائية هذه <Seger> قائمة = erraylist <> () ؛ عشوائي عشوائي = جديد عشوائي () ؛ عدد صحيح K ؛ لـ (int i = 0 ؛ i <n ؛ i ++) {do {k = random.nextint (max) ؛ } بينما (list.contains (k)) ؛ list.add (k) ؛ } قائمة الإرجاع ؛ } 1. فرز قائمة الأدوية العددية
/*** 1. فرز قائمة الأعياد عدد صحيح من خلال طريقة collections.sort () ؛ * قم بإنشاء قائمة من الأعياد عدد صحيح ، أدخل عشرة أعداد صحيحة عشوائية غير مبتذلة ضمن 100 ، واتصل بالطريقة System.out.println ("-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- System.out.println ("العنصر:" + integer) ؛ System.out.println ("------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 2. فرز قائمة الأداء الوطني
/*** 1. فرز قائمة الأداء الوطني ؛ قم بإنشاء قائمة من الأداء الأولي ، إضافة عناصر السلسلة خارج الطلب ، * استدعاء طريقة الفرز ، وإخراج ترتيب الفرز مرة أخرى */ public void liststringsort () {list <string> stringlist = new ArrayList <string> () ؛ StringList.add ("eipjlcx") ؛ StringList.add ("WVQRUFC") ؛ StringList.add ("J") ؛ StringList.add ("HDAU2G") ؛ StringList.add ("M0WSWHD3") ؛ System.out.println ("-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- / *** قم بفرز قائمة الأداء الوراثي السلسلة ، والتي تتطلب توليد عشوائي من 10 سلاسل غير مبتذلة ، وطول السلسلة هو ضمن 10*/ public void listStringRandomsort () {// إنشاء قائمة سلسلة عشوائية <Tring> listString = generatestring (10) ؛ System.out.println("------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- System.out.println ("------------------------------------------------------------------") ؛3. فرز قائمة الأنواع الأخرى من الأدوية
تنفيذ فئة الدورة
/** * فئة الدورة التدريبية * Author Administrator * */Public Class Course {Public String ID ؛ اسم السلسلة العامة ؛ الدورة العامة (معرف السلسلة ، اسم السلسلة) {this.id = id ؛ this.name = name ؛ } الدورة العامة () {} Override public int hashcode () {Final int prime = 31 ؛ int النتيجة = 1 ؛ النتيجة = prime * result + ((name == null)؟ 0: name.hashCode ()) ؛ نتيجة العودة } Override Public Boolean يساوي (كائن OBJ) {if (this == obj) إرجاع true ؛ إذا (OBJ == NULL) عودة خطأ ؛ if (! (OBJ مثيل من الدورة التدريبية)) إرجاع خطأ ؛ دورة أخرى = (بالطبع) OBJ ؛ if (name == null) {if (other.name! = null) return false ؛ } آخر إذا (! name.equals (other.name)) إرجاع خطأ ؛ العودة صحيح. }} يطبق فصل الطالب واجهة قابلة للمقارنة ويحدد عناصر المقارنة داخل الفصل
استيراد java.util.hashset ؛ استيراد java.util.set ؛/** * فئة الطالب * Author Administrator * */طالب الفئة العامة يطبق قابلة للمقارنة <student> {public string id ؛ اسم السلسلة العامة ؛ مجموعة عامة <STER> دورات ؛ الطالب العام (معرف السلسلة ، اسم السلسلة) {this.id = id ؛ this.name = name ؛ this.courses = new hashset <Sours> () ؛ } Override public int hashcode () {Final int prime = 31 ؛ int النتيجة = 1 ؛ النتيجة = prime * result + ((name == null)؟ 0: name.hashCode ()) ؛ نتيجة العودة } Override Public Boolean يساوي (كائن OBJ) {if (this == obj) إرجاع true ؛ إذا (OBJ == NULL) عودة خطأ ؛ إذا (! (OBJ مثيل من الطالب)) إرجاع خطأ ؛ الطالب الآخر = (الطالب) OBJ ؛ if (name == null) {if (other.name! = null) return false ؛ } آخر إذا (! name.equals (other.name)) إرجاع خطأ ؛ العودة صحيح. } Override public int compareto (student o) {// set id as item comparison // todo method tuto method return this.id.compareto (o.id) ؛ }} قم بتنفيذ واجهة المقارنة وقم بتعيين عناصر المقارنة خارج الفصل
استيراد java.util.comparator ؛ فئة Public STUTTEMPARATOR تنفذ المقارنة <Tudtude> {Override public int (الطالب O1 ، الطالب O2) {// todo method method method clud rotgen o1.name.compareto (o2.name) ؛ }} مقارنة فصول الطلاب
/*** فرز قوائم الأنواع الأخرى من الأدوية ، أخذ الطالب كمثال. */ public void listComparatorsort () {list <Tudent> studentList = new ArrayList <Tudent> () ؛ قائمة <integer> list = getDiffno (4 ، 1000) ؛ StudentList.add (طالب جديد (list.get (0) + "" ، "Mike")) ؛ StudentList.add (طالب جديد (list.get (1) + "" ، "Angela")) ؛ StudentList.add (طالب جديد (list.get (2) + "" ، "Lucy")) ؛ StudentList.add (طالب جديد (1000 + "" ، "بيونسي")) ؛ System.out.println ("---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- System.out.println ("الطالب:" + student.id + ":" + student.name) ؛ System.out.println("---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ما سبق هو كل محتوى هذه المقالة. آمل أن يكون ذلك مفيدًا لتعلم الجميع وآمل أن يدعم الجميع wulin.com أكثر.