لمحة جافاوية 11:قابل للمقارنة

السلام عليكم

كيف حالكم جميعاً
أرى بعض الوجوه الجديدة
من فضلكم سجلوا لدى الأخ عبده
أحب أن أحتفظ بأسماء تلاميذي
ربما أستفيد من ذلك مستقبلاً
لا تسألوني عن كيفية الاستفادة
فالجميع يعلم أن المخابرات في هذه الأيام
تدفع الكثير مقابل هذه القوائم
لست رائق البال لاسمعكم بعضاً من تراهاتي
لهذا سأدخل في الموضوع مباشرة

من يومين كنت أساعد أحد الإخوة في موضوع
الفئة قابل للمقارنة Comparable
فوجدتها فرصة لكي أشارككم هذه الخبرة
ببساط Comperable ليست فئة
في الحقيقة هي مجرد interface
لكن الجافا تعتمد عليها في أي دوال تقوم على المقارنات
مثل الدوال الخاصة بالطابور ذو الأولوية PriorityQueue

كيف تجعل الكائنات من فئتك قابلة للمقارنة
1- قم ببناء implements للواجهة Comparable
2- قم ببناء الدالة compareTo والتي لها التوقيع التالي

public int compareTo(Object o)

3- هذه الدالة يفترض بها أن تأخذ كائن وتقارنه مع الكائن الحالي
وتستدعى بالطريقة التالية

obj1.compareTo(obj2);

في حالة إذا ما كان obj1 أكبر من obj2 أرجع أي رقم موجب
في حالة إذا ما كان obj1 أصغر من obj2 أرجع أي رقم سالب
في حالة إذا ما كان obj1 يساوي obj2 أرجع الصفر
وهذا مثال بسيط للترسيخ

import java.util.PriorityQueue;

public class ObjectWithComperable implements Comparable {int x;

 public ObjectWithComperable(int x){

 	this.x=x;

 }

 public int compareTo(Object o) {

 	if(((ObjectWithComperable)o).x>x)

 		return 1;

 	else if(((ObjectWithComperable)o).x<x)

 		return -1;

 	else

 		return 0;

 }

 public static void main(String[] args) {

 	PriorityQueue pq=new PriorityQueue();

 	for (int i = 10	; i >= 0; i--) {

 		pq.add(new ObjectWithComperable(i));

 	}

 	while (!pq.isEmpty()) {

 		System.out.println(((ObjectWithComperable)pq.poll()).x);

 	}

 }

}

على العموم ستحتاج إلى هذا اللمحة
عند استخدامك لأي فئة في الجافا تحتوي على ترتيب sort
بما أني قد أنهيت واجباتي بشكل جيد
ماذا عن بعض الدردشة على الأقل لكي نضع القادمين الجدد
على أول طريق التعارف مع العتاولة القدام
هل لدى أحدكم أنشودة ليسمعنا إياها
ماذا طريقة من طرق الروضة
كنت أظن أنها طريقة مبتكرة لطلاب الجامعات
لماذا تصرون على إحباطي دائماً
أحياناً أحس أنكم تستمتعون بذلك
ربما أنا ممل بدرجة غريبة
حتى القادمين الجدد يرون ذلك
بما أني كنت عبقرياً في اقتراحي
فاقترحوا أنتم لعلكم أحدكم يقترح اقتراحاً جيداً
ماذا تقترحون أن أموت وأريحكم
لو أن الأمر بيدي لكنت فكرت
لكنه ليس كذلك
لهذا فأنا جاثم على صدوركم
حتى يقضي الله أمراً كان مفعولاً

تحياتي
شهيد الأقصى

Tags: , , , , , ,

2 Responses to “لمحة جافاوية 11:قابل للمقارنة”

  1. […] يبدو أني لست الوحيد الذي ينسى أخذها منكم الأخ عبده في قابل للمقارنة دبروا أموركم وتجهزوا فالأخ كايزن لا يرضى إلا بالكثير […]

  2. […] مشاكلي ولنتكلم عن موضوع اليوم اليوم أريد التعديل على لمحة جافاوية 11: قابل للمقارنة عندما تريد التعامل مع الفئة من نوع Comparable تستطيع […]

Leave a Reply