الانتقال إلى المحتوى الرئيسي

مقارنة في جافا: كيف تعمل طريقة كومباريتو

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

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

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

  1. ما هو كومباريتو في جاوة
  2. كيف تعمل طريقة كومباريتو
  3. قواعد لمقارنة الكائنات في كومباريتو
  4. قيمة الإرجاع من كومباريتو
  5. أمثلة على استخدام كومباريتو
  6. مثال 1: مقارنة الأرقام
  7. مثال 2: مقارنة السلسلة
  8. مثال 3: فرز قائمة الكائنات
  9. كيفية تجاوز طريقة كومباريتو لفئة مخصصة
  10. الاختلافات بين متساوين وكومباريتو
  11. سؤال وجواب
  12. كيف تعمل طريقة كومباريتو في جافا?
  13. كيف يمكنني مقارنة السلاسل في جافا?
  14. كيف يمكنني مقارنة الأرقام في جافا?
  15. هل من الممكن استخدام طريقة كومباريتو لمقارنة الكائنات المخصصة?
  16. ما هو الفرق بين أنداد وأساليب كومباريتو?

ما هو كومباريتو في جاوة

ويأخذ كائن آخر من نفس النوع كمعلمة.

هو عدد صحيح يشير إلى العلاقة بين كائنين تتم مقارنتهما. إذا كانت النتيجة سالبة ، فهذا يعني أن الكائن الحالي أصغر من الكائن الذي تم تمريره كمعلمة ، وإذا كانت النتيجة موجبة ، فإن الكائن الحالي أكبر ، وإذا كانت النتيجة صفرا ، فإن الكائنات متساوية.

. Переопределение метода позволяет определить критерии сравнения объектов этого класса.

:

يقارن عمر الكائن الحالي مع الكائن الذي تم تمريره ويعيد الفرق بينهما.

. اعتمادا على نتيجة المقارنة ، يتم عرض رسالة مقابلة.

كيف تعمل طريقة كومباريتو

يتم استخدام طريقة كومباريتو في جافا لمقارنة كائنين. غالبا ما يتم استخدامه لفرز المجموعات أو لتحديد ترتيب العناصر في هياكل البيانات المصنفة مثل الأشجار.

ترجع طريقة كومباريتو رقما سالبا أو صفرا أو رقما موجبا ، اعتمادا على نتيجة مقارنة كائنين. إذا كانت القيمة أقل من الصفر ، فهذا يعني أن المتصل أصغر من الكائن الذي تم تمريره في المعلمة. إذا كانت القيمة صفرا ، فإن الكائنات تعتبر متساوية. إذا كانت القيمة أكبر من الصفر ، فسيكون المتصل أكبر من الكائن الذي تم تمريره في المعلمة.

لاستخدام طريقة كومباريتو ، يجب على فئة الكائن تنفيذ واجهة قابلة للمقارنة. توفر هذه الواجهة طريقة كومباريتو المجردة الوحيدة التي تحتاج إلى إعادة تعريف. يجب أن تأخذ طريقة كومباريتو كائن من نفس الفئة كمعلمة وإرجاع قيمة إنت.

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

طريقة كومباريتو معممة ، لذلك يمكن استخدامها مع أنواع مختلفة من البيانات. على سبيل المثال ، يمكن استخدامه لمقارنة الأرقام والتواريخ والكائنات المخصصة وما إلى ذلك.

بالإضافة إلى ذلك ، يتم استخدام طريقة كومباريتو أيضا في فئة المصفوفات لفرز العناصر في صفيف باستخدام خوارزمية فرز سريعة.

قواعد لمقارنة الكائنات في كومباريتو

طريقة كومباريتو هي جزء من واجهة قابلة للمقارنة ، والذي يسمح لك لمقارنة الكائنات في جافا. يقوم بإرجاع عدد صحيح يشير إلى علاقة كائنين ببعضهما البعض.

عند تنفيذ طريقة كومباريتو ، يجب مراعاة القواعد التالية:

  1. علاقة النظام: يجب أن تحدد طريقة كومباريتو الترتيب بين الكائنات. إذا كان الكائن الحالي أصغر من الكائن الذي تتم مقارنته به ، فيجب أن ترجع الطريقة رقما سالبا. إذا كانت الكائنات متساوية ، يجب أن ترجع الطريقة صفرا. إذا كان الكائن الحالي أكبر من الكائن الذي تتم مقارنته به ، فيجب أن ترجع الطريقة رقما موجبا.
  2. الاتساق مع المساواة: إذا كانت طريقة كومباريتو ترجع صفرا لكائنين ، فيجب أن تكون هذه الكائنات متساوية في سياق الطرق الأخرى التي تحدد المساواة بين الكائنات ، مثل يساوي و هاشكود.
  3. العبور: إذا كان الكائن أ أكبر من الكائن ب ، والكائن ب أكبر من الكائن ج ، فيجب أن يكون الكائن أ أكبر أيضا من الكائن ج.تضمن هذه القاعدة أنه عند فرز مصفوفة من الكائنات ، فإن الكائنات التي تتم مقارنتها ستلبي الترتيب المتعدي.
  4. التناظر: إذا كان الكائن أ أكبر من الكائن ب ، فيجب أن يكون الكائن ب أصغر من الكائن أ. تضمن هذه القاعدة أنه حتى في حالة تغيير ترتيب الفرز ، ستظل نتائج مقارنة الكائنات متسقة.
  5. مقارنة فارغة: يجب أن تكون طريقة كومباريتو قادرة على التعامل بشكل صحيح المقارنات مع الكائنات الفارغة دون رفع استثناءات نولبوانتركسيبتيون.

يمكن أن يؤدي انتهاك إحدى هذه القواعد إلى سلوك غير متوقع في الأساليب التي تستخدم مقارنة الكائنات ، مثل المجموعات.فرز أو مجموعة الأشجار.

سيسمح لك اتباع هذه القواعد بتنفيذ طريقة كومباريتو بشكل صحيح والتأكد من مقارنة الكائنات بشكل صحيح في جافا.

قيمة الإرجاع من كومباريتو

إرجاع عدد صحيح يشير إلى العلاقة بين كائنين. يمكن أن تكون نتيجة المقارنة رقما سالبا أو صفرا أو موجبا:

  • الرقم السالب: إذا كان المتصل أصغر من الكائن الذي تم تمريره كوسيطة.
  • رقم الصفر: إذا كان كائن الاستدعاء يساوي الكائن الذي تم تمريره كوسيطة.
  • رقم موجب: إذا كان المتصل أكبر من الكائن الذي تم تمريره كوسيطة.

وهو يتألف من ترتيب وفرز العناصر. يمكن استخدام قيمة الرقم الذي تم إرجاعه لتحديد ترتيب العناصر في المجموعة التي تم فرزها.

على النحو التالي:

العامة إنت كومباريتو (شخص آخر) {

ارجع هذا. الاسم. كومباريتو(other.name );

}

يمكن استخدامها لتحديد ترتيب الفرز لعدة حقول:

العامة إنت كومباريتو (شخص آخر) {

إنت ناميكومباري = هذا. الاسم. كومباريتو(other.name );

إذا (الاسممقارنة != 0) {

اسم الإرجاعمقارنة;

}

أعد هذا.العمر-أخرى.العمر;

}

في المثال أعلاه ، إذا لم تكن أسماء كائنين متساوية ، فسيتم فرز هذه الكائنات أبجديا حسب الاسم. إذا كانت أسماء الكائنات متساوية ، ثم تتم مقارنة أعمارهم ، وسيتم تحديد الكائن مع سن أقل في وقت سابق.

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

أمثلة على استخدام كومباريتو

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

مثال 1: مقارنة الأرقام

، والتي تمثل قيمة رقمية.

رقم الفئة العامة ينفذ قابلة للمقارنة {

قيمة كثافة العمليات الخاصة;

الرقم العام (القيمة الدولية) {

هذا.القيمة = القيمة;

}

العامة إنت جيتفالو () {

قيمة الإرجاع;

}

العامة إنت كومباريتو (عدد آخر) {

عودة عدد صحيح.قارن (قيمة, آخر.جيتفالو());

}

}

:

رقم الرقم 1 = رقم جديد (5);

رقم الرقم 2 = رقم جديد (10);

إذا (عدد1.كومباريتو (عدد2) < 0) {

النظام.خارج.برينتلن ("الرقم 1 меньше ، num الرقم 2");

} آخر إذا (عدد1.كومباريتو (رقم2) > 0) {

النظام.خارج.برينتلن ("الرقم 1 больше ، num الرقم 2");

} آخر {

النظام.خارج.برينتلن ("الرقم 1 num الرقم 2");

}

Вывод:

number1 меньше, чем number2

Пример 2: Сравнение строк

, который представляет человека с именем и возрастом.

public class Person implements Comparable {

private String name;

private int age;

public Person(String name, int age) {

this.name = name;

this.age = age;

}

public String getName() {

return name;

}

public int getAge() {

return age;

}

public int compareTo(Person other) {

return name.compareTo(other.getName());

}

}

:

Person person1 = new Person("John", 25);

Person person2 = new Person("Alice", 30);

if (person1.compareTo(person2) < 0) {

System.out.println(person1.getName() + " идет перед " + person2.getName());

} else if (person1.compareTo(person2) > 0) {

System.out.println(person2.getName() + " идет перед " + person1.getName());

} else {

System.out.println(person1.getName() + " и " + person2.getName() + " имеют одинаковый порядок");

}

Вывод:

Alice идет перед John

Пример 3: فرز قائمة الكائنات

لفرز قائمة الكائنات.

قائمة الأشخاص = قائمة جديدة ();

الأشخاص.إضافة (شخص جديد ("جون" ، 25));

الأشخاص.إضافة (شخص جديد ("أليس" ، 30));

الأشخاص.إضافة (شخص جديد ("بوب" ، 20));

مجموعات.فرز (أشخاص);

إلى عن على (شخص شخص : الأشخاص) {

النظام.خارج.برينتلن (شخص.جيتنام());

}

الناتج:

أليس

بوب

جون

عادة ما ترجع رقما سالبا إذا كان الكائن الحالي يجب أن يذهب قبل الكائن الذي تم تمريره ، ورقم موجب إذا كان الكائن الحالي يجب أن يذهب بعد الكائن الذي تم تمريره ، وصفر إذا كان كلا الكائنين متساويين.

كيفية تجاوز طريقة كومباريتو لفئة مخصصة

تم تصميم طريقة كومباريتو في جافا لمقارنة كائنين. بشكل افتراضي ، يتم تعريفه في واجهة قابلة للمقارنة ويستخدم لترتيب عناصر المجموعة مثل أريليست أو تريسيت.

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

الطبقة العامة ميكلاس تنفذ قابلة للمقارنة {

قيمة كثافة العمليات الخاصة;

ميكلاس العامة (قيمة إنت) {

هذا.القيمة = القيمة;

}

العامة إنت جيتفالو () {

قيمة الإرجاع;

}

العامة إنت كومباريتو (ميكلاس أخرى) {

// مقارنة الكائن الحالي مع الكائن الذي تم تمريره آخر

إذا (هذا.القيمة < أخرى.جيتفالو ()) {

عودة -1;

} آخر إذا (هذا.قيمة > آخر.جيتفالو ()) {

عودة 1;

} آخر {

العودة 0;

}

}

}

في هذا المثال ، تقوم فئة ميكلاس بتنفيذ الواجهة القابلة للمقارنة وتتجاوز طريقة كومباريتو. في طريقة كومباريتو ، نقارن قيمة حقل القيمة للكائن الحالي مع الكائن الآخر الذي تم تمريره. إذا كانت القيمة أقل ، ترجع الطريقة -1 ؛ إذا كان أكبر من 1 ؛ إذا كان يساوي 0.

الآن يمكننا استخدام طريقة كومباريتو لمقارنة الكائنات من فئة ميكلاس. على سبيل المثال ، يمكننا إنشاء قائمة من الكائنات من فئة ميكلاس وفرزها:

استيراد جافا.أوتيل.أريليست;

استيراد جافا.أوتيل.التحصيل;

استيراد جافا.أوتيل.قائمة;

الطبقة العامة الرئيسية {

العامة ثابت الفراغ الرئيسي (سلسلة[] الحجج) {

قائمة قائمة = أريليست جديدة();

قائمة.إضافة (جديد ميكلاس (5));

قائمة.إضافة (جديد ميكلاس (3));

قائمة.إضافة (جديد ميكلاس (8));

مجموعات.فرز (قائمة);

ل (ميكلاس أوبج: قائمة) {

النظام.خارج.برينتلن (كائن.جيتفالو());

}

}

}

После выполнения данного кода на экране будет выведено:

  1. 3
  2. 5
  3. 8

وبالتالي ، من خلال إعادة تعريف طريقة كومباريتو في فئتك المخصصة ، يمكنك تحديد كيفية مقارنة كائنات هذه الفئة مع بعضها البعض عند استخدام طريقة كومباريتو.

الاختلافات بين متساوين وكومباريتو

يتم استخدام طريقة يساوي وطريقة كومباريتو في جافا لمقارنة الكائنات ، ولكن لديهم بعض الاختلافات في وظائفها:

  1. قيمة الإرجاع:
  2. ترجع طريقة يساوي قيمة منطقية-صحيح إذا كائنين متساويين ، وخطأ خلاف ذلك. ترجع طريقة كومباريتو قيمة إنت-رقم سالب أو صفر أو رقم موجب إذا كان الكائن الحالي أقل من أو يساوي أو أكبر من الكائن الذي تتم مقارنته به.

  3. معلمات الطريقة:
  4. تقبل طريقة يساوي معلمة واحدة-الكائن المراد مقارنته. تأخذ طريقة كومباريتو معلمة واحدة ، الكائن المراد مقارنته ، وتعيد نتيجة المقارنة مع الكائن الحالي.

  5. الأساليب المستخدمة:
  6. تستخدم طريقة التساوي طريقة هاشكود لتحديد مساواة الكائنات ، بينما تقارن طريقة المقارنة الكائنات باستخدام الترتيب الطبيعي لعناصرها أو مقارنة محددة.

  7. القرار فارغ:
  8. يجب أن تتعامل طريقة التساوي مع الحالة عندما يكون أحد الكائنات التي تتم مقارنتها فارغا لتجنب نولبونتيركسيبتيون. يجب أن تتعامل طريقة كومباريتو أيضا مع قيمة فارغة ، ولكن في هذه الحالة يجب أن تولد نولبوانتيركسيبتيون.

  9. اتفاق التكافؤ:
  10. يجب تنفيذ طريقة المساواة وفقا للاحتياجات المحددة للبرنامج. يمكنك تحديد المعايير الخاصة بك للمساواة بين الكائنات. يجب تنفيذ طريقة كومباريتو وفقا لاتفاقية عامة لتحديد ترتيب العناصر.

سؤال وجواب

كيف تعمل طريقة كومباريتو في جافا?

يتم استخدام طريقة كومباريتو في جافا لمقارنة كائنين. يقوم بإرجاع رقم سالب إذا كان الكائن الأول أصغر من الثاني ، ورقم موجب إذا كان الكائن الأول أكبر من الثاني ، وصفر إذا كانت الكائنات متساوية.

كيف يمكنني مقارنة السلاسل في جافا?

تستخدم جافا طريقة كومباريتو لمقارنة السلاسل. إذا كانت النتيجة صفرا ، فإن الصفوف متساوية. إذا كانت النتيجة سالبة ، فسيكون الصف الأول أصغر من الثاني ، وإذا كانت النتيجة موجبة ، فسيكون الصف الأول أكبر من الثاني.

كيف يمكنني مقارنة الأرقام في جافا?

يستخدم جافا أيضا طريقة كومباريتو لمقارنة الأرقام. إذا كانت النتيجة صفرا ، فإن الأرقام متساوية. إذا كانت النتيجة سالبة ، فإن الرقم الأول أقل من الثاني ، وإذا كانت النتيجة موجبة ، فإن الرقم الأول أكبر من الثاني.

هل من الممكن استخدام طريقة كومباريتو لمقارنة الكائنات المخصصة?

نعم ، يمكنك استخدام طريقة كومباريتو لمقارنة الكائنات المخصصة. للقيام بذلك ، أعد تعريف طريقة كومباريتو في فئة الكائن عن طريق تحديد منطق المقارنة.

ما هو الفرق بين أنداد وأساليب كومباريتو?

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