مقدمة
ترث واجهة القائمة في حزمة Java.Util واجهة التجميع وتستخدم لتخزين مجموعات الكائنات. لذلك ، عند فرز هذه الكائنات ، يمكن لفئة الكائن مقارنة نفس الكائن نفسه ، أو استخدام المقارنة لإجراء المقارنة والفرز.
يتم فرز فصل كيان الطالب ، بما في ذلك سمات الاسم والسن ، بالترتيب الصاعد بالاسم عند المقارنة ، وإذا كانت الأسماء هي نفسها ، فسيتم فرزها بالترتيب الصاعد في العمر.
النوع الأول: مقارنة فصول الكيانات بأنفسهم
(قم بتنفيذ الواجهة المماثلة: public interface Comparable<T> ، هناك إعلان طريقة: public int compareTo(T o); )
نموذج الرمز:
طالب الطبقة العامة ينفذ قابلة للمقارنة <student> {اسم السلسلة الخاصة ؛ عصر INT الخاص ؛ الطالب العام () {super () ؛ // TODO AUTO CONTRUCTOR CONTERS} الطالب العام (اسم السلسلة ، 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 ؛ } Override public int compareto (student o) {// todo method method method into int flag = this.name.compareto (O.Name) ؛ if (flag == 0) {flag = this.age - o.age ؛ } العلم الإرجاع ؛ }} ثم استخدم طريقة sort(Comparator<? super E> c) لفئة القائمة أو sort(List<T> list) من فئة أداة java.util.Collections (في الواقع ، هناك جملة واحدة فقط فيها: list.sort(null); ) لفرز:
قائمة <Tudture> students = new ArrayList <Tudent> () ؛ students.add (طالب جديد ("A" ، 10)) ؛ students.add (طالب جديد ("B" ، 12)) ؛ students.add (طالب جديد ("B" ، 11)) ؛ students.add (طالب جديد ("AC" ، 20)) ؛ الطلاب. //collections.sort(students) ؛ نتيجة:
A 10 AC 20 B 11 B 12
النوع الثاني: فرز بمساعدة المقارنة.
نموذج الرمز:
طالب الطبقة العامة {اسم السلسلة الخاصة ؛ عصر INT الخاص ؛ الطالب العام () {super () ؛ // TODO AUTO CONTRUCTOR CONTERS} الطالب العام (اسم السلسلة ، 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.Comparator هي واجهة ( public interface Comparator<T> ) ، والتي تحتوي على int compare(T o1, T o2); وطرق أخرى:
يريد المقارن لدينا تنفيذ هذه الواجهة وتنفيذ طريقة compare :
يقوم الطالب الخاص بالفئة الخاصة بتنفيذ المقارنة <Tudture> {Override Public int (الطالب O1 ، الطالب O2) {// todo method method method int int flag = o1.getName (). compareto (o2.getName ()) ؛ if (flag == 0) {flag = o1.getage () - o2.getage () ؛ } العلم الإرجاع ؛ }} عند المقارنة ، يمكنك استخدام طريقة sort(Comparator<? super E> c) في القائمة (أو القائمة <T> القائمة ، المقارنة <؟ super t> c) طريقة فئة أداة java.util.Collections sort(List<T> list, Comparator<? super T> c) طريقة الفرز.
قائمة <Tudture> students = new ArrayList <Tudent> () ؛ students.add (طالب جديد ("A" ، 10)) ؛ students.add (طالب جديد ("B" ، 12)) ؛ students.add (طالب جديد ("B" ، 11)) ؛ students.add (طالب جديد ("AC" ، 20)) ؛ اختبار t = اختبار جديد () ؛ الطلاب. //collections.sort(students ، t.new studentcomparator ()) ؛ لـ (الطالب الطالب: الطلاب) {system.out.println (student.getName ()+""+student.getage ()) ؛ } والنتيجة هي نفس الطريقة الأولى:
A 10 AC 20 B 11 B 12
لخص
ما سبق هو كل شيء عن قائمة الفرز في جافا. آمل أن يكون محتوى هذه المقالة من بعض المساعدة في دراسة أو عمل الجميع. إذا كان لديك أي أسئلة ، فيمكنك ترك رسالة للتواصل.