الترتيب الأبجدي في جاوة

في Java ، يعتبر فرز أنواع البيانات البسيطة مثل الأعداد الصحيحة والبايتات عملية مباشرة في معظم الحالات. تم تصميم كل من برامج Java وأجهزة الكمبيوتر للتعامل مع وظائف مثل حساب الرقم والفرز بدرجة عالية من الكفاءة. يمكن أن يكون الفرز أكثر تعقيدًا عندما يتعلق الأمر بترتيب السلاسل. باستخدام واجهة "المقارنة" ، يمكن لمبرمجي جافا تمديد إمكانات الأبجدية لمعظم الكائنات.

باستخدام الصفائف

يدعم كائن المصفوفة في لغة برمجة Java أسلوبًا مضمنًا لفرز الكائنات. يمكن فرز مصفوفة من السلاسل المسماة "كلمات" ، على سبيل المثال ، عن طريق استدعاء طريقة "Arrays.sort (words)" ، والتي ستقوم على الفور بفرز السلاسل في المصفوفة بترتيب أبجدي. تعمل هذه الوظيفة بشكل جيد مع السلاسل وبعض أنواع البيانات الأخرى ولكن ليس بالضرورة لأنواع البيانات التي ينشئها المستخدم. لفرز أنواع البيانات الأخرى أبجديًا ، يجب عليك استخدام واجهة "المقارنة".

واجهة قابلة للمقارنة

في Java ، تعتبر "الواجهة" فئة أساسية مجردة لا تخدم سوى الغرض من قالب للفئات الأخرى. تحدد واجهة قابلة للمقارنة الأساليب التي تسمح بفرز الكائنات استنادًا إلى مواصفات المستخدم. تقوم الفئة String بالفعل بتنفيذ هذه الواجهة ، مما يسمح بفرز كائنات السلسلة حسب فئة الصفائف. لفرز الكائنات التي تم إنشاؤها ، يجب على المبرمج تطبيق أساليب الفئة المقارنة بطريقة أبجدية عليها.

باستخدام طريقة "compareTo"

يجب أن يقوم كائن يقوم بتنفيذ واجهة المقارنة باستدعاء الكلمة الرئيسية "implements" أولاً ، ثم يجب تعريف طريقة "compareTo" في فئة المقارنة. يمكن تعريف هذه الطريقة بطرق مختلفة ، طالما أنها تتم وفقًا للمواصفات. في حالة المقارنة ، يجب مقارنة طريقة compareTo بين قيمتين لنوع الكائن وإرجاع عدد صحيح: 0 إذا كانت القيمتين متساويتين ، -1 إذا كان الكائن المقارن أقل من الآخر ، و 1 إذا كان الكائن أكبر من الكائن الذي تتم مقارنته.

خلق وفرز كائنات قابلة للمقارنة

سيقوم كائن مشابه بتنفيذ الفئة قابل للمقارنة وتحديد طريقة compareTo. وبمجرد الانتهاء من ذلك ، يمكن للمبرمج استخدام هذا الكائن في صفائف الفرز الأبجدية كما يوضح المثال التالي:

مثال على الفئة ينطبق على {string العام string_string = سلسلة جديدة؛

public static int compareTo (مثال على ذلك) {

if (this.ex_string.compareTo (ex.ex_string) == 0) {return 0؛ } آخر في حالة (this.ex_string.compareTo (ex.ex_string) <0) {return -1؛ } آخر {return 1؛ }

public static void main (String [] args) {

مثال a = مثال جديد مثال ب = مثال جديد ؛ مثال ج = مثال جديد ؛

a.ex_string = "ccc" ؛ b.ex_string = "zzz" ؛ c.ex_string = "yyy"؛

مثال [] list = {a، b، c}؛

Arrays.sort (قائمة)؛

}}

موصى به