موصى به, 2024

اختيار المحرر

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

للمقارنة والمقارنة كل من واجهات عامة في جافا المستخدمة لمقارنة عناصر البيانات من الكائنات. توجد واجهة المقارنة في الحزمة java.lang ووجهة المقارنة في حزمة java.util. والفرق الأساسي بين واجهات المقارنة والمقارنة هو أن الواجهة المقارنة توفر تسلسل الفرز الفردي بينما توفر واجهة المقارنة تسلسلات الفرز المتعددة. هناك بعض الاختلافات الأخرى بين واجهة المقارنة والمقارنة التي سنقوم بدراستها في مخطط المقارنة.

رسم بياني للمقارنة

أساس للمقارنةمشابهالمقارنة
الأساسيةتسمح واجهة المقارنة بتسلسل الفرز الوحيد.تسمح واجهة المقارنة لعدة تسلسلات فرز.
حزمتوجد واجهة المقارنة في الحزمة java.lang.واجهة المقارنة موجودة في حزمة java.util.
أساليبتحتوي واجهة المقارنة على طريقة واحدة فقط
public int compareTo (Object obj)؛
تحتوي واجهة المقارنة على طريقتين
مقارنة بين العامة (Object obj1، Object obj2)
boolean يساوي (كائن obj)
التنفيذيتم تنفيذ واجهة المقارنة من قبل الفئة التي يتم مقارنتها الكائنات.يتم تنفيذ واجهة المقارنة عن طريق فئة sperate بدلاً من الطبقة التي سيتم مقارنة الكائنات الخاصة بها.
مقارنةيقارن أسلوب compareTo (كائن obj) الكائن الذي يتم استخدامه لاستدعاء الأسلوب مع تمرير الكائن المحدد إلى الأسلوب.المقارنة (Object obj1، Object obj2) تقارن بين الكائنات المحددة التي تم تمريرها إلى الطريقة.
قائمة / صفيفعند مقارنة قائمة كائن من نوع قابل للمقارنة ، فإن فئة التجميع توفر طريقة مثل Collections.sort (List lst).عندما يتعين مقارنة قائمة الكائنات من نوع قابل للمقارنة ، فإن فئة التجميع توفر طريقة على سبيل المثال
Collections.sort (List، Comparator).

تعريف المقارنة

قابلة للمقارنة هي واجهة متوفرة في حزمة java.lang. يقوم الفصل بتنفيذ واجهة المقارنة ، لفرز كائنه بترتيب طبيعي. الكائنات التي تم فرزها بترتيب طبيعي تعني أنه تتم مقارنة الكائنات بقيم ASCII الخاصة بها. تكون الفئات التي تقوم بتطبيق واجهة قابلة للمقارنة فئات بايت و Character و Double و Float و Long و Short و String و Integer. حتى فئة التاريخ و Calander تطبق أيضا واجهة المقارنة.

تحتوي واجهة المقارنة على أسلوب واحد فقط هو CompareTo (كائن obj). يقارن هذا الأسلوب الكائن المستخدم لاستدعاء الطريقة مع الكائن المحدد في المعلمة.كلمة الأسلوب هي كما يلي:

 public int compareTo (Object obj)؛ 

إرجاع الأسلوب CompareTo (كائن obj) 0 ، عندما يحتوي كل كائن مقارنة بالطريقة على القيمة نفسها ، فإنه يقوم بإرجاع قيمة -ve إذا كان الكائن الذي تم استدعاءه أصغر من الكائن المحدد ثم إرجاع + قيمة ve إذا كان كائن الاستدعاء أكبر القيمة مقارنة بالكائن المحدد. توفر فئة المجموعات طريقة فرز لفرز عناصر القائمة. يمكن أن تكون عناصر القائمة (والمصفوفة) من نوع قابل للمقارنة باستخدام الطريقة "Collections.sort (List lst)".

تعريف المقارنة

المقارنة هي واجهة متوفرة في حزمة java.util. لا يتم تنفيذ واجهة المقارنة على الفئة التي يتم مقارنة الكائنات الخاصة بها بدلاً من ذلك ، حيث تقوم فئة منفصلة بتنفيذ واجهة المقارنة بحيث يتم تطبيق منطق الفرز على كل عنصر من عناصر الكائن في فئة مختلفة. يحتوي المقارن على طريقتين على النحو التالي:

 مقارنة int عامة (Object obj1، Object obj2) وقيمة منطقية تساوي (Object obj) 

يقارن أسلوب مقارنة () أعلاه الكائن الأول obj1 ، مع الكائن الثاني obj2. ترجع الطريقة مقارنة () 0 عندما يحتوي كل من الكائن مقارنة بالطريقة على القيمة نفسها ، فإنها تعيد القيمة -ve إذا كان الكائن obj1 أصغر من الكائن obj2 ثم إرجاع + قيمة ve إذا كان الكائن obj1 له قيمة أكبر مقارنة إلى الكائن obj2. تتحقق أساليب equals () إذا كان الكائن المحدد مساوٍ للكائن الذي يتم استدعاءه. ترجع الطريقة equals () إلى true إذا كان كل من الكائنات المقارَنة متساويةً فيؤدي إلى إرجاع false . توفر فئة المجموعات طريقة فرز عناصر القائمة ونوع المقارنة. يتم فرز عناصر قائمة أنواع المقارنة حسب الطريقة Collections.sort (List، Comparator).

الاختلافات الرئيسية بين المقارنة والمقارنة

  1. تسمح واجهة المقارنة بتسلسل الفرز الفردي مما يعني أنه يمكنك مقارنة عنصر البيانات الوحيد من الكائن بطريقة مقارنة () من جهة أخرى ، تسمح واجهة المقارن بتسلسلات فرز متعددة مما يعني أنه يمكنك مقارنة عناصر بيانات متعددة للعنصر.
  2. يتم تنفيذ واجهة المقارنة بواسطة الفئة التي سيتم مقارنة كائناتها نظرًا لتعريف منطق الفرز داخل نفس الفئة. من ناحية أخرى ، لا يتم تنفيذ واجهة المقارنة من قبل الفئة التي يتم مقارنتها الكائنات الخاصة بها لأن يتم تحديد منطق الفرز في فئات منفصلة حيث يعرّف كل فئة الفرز على عنصر بيانات واحد من الكائن وتطبق هذه الفئات تعريف واجهة المقارنة .
  3. تقع واجهة المقارنة داخل الحزمة java.lang بينما تقع واجهة المقارنة داخل الحزمة java.util.
  4. تعلن واجهة المقارنة طريقة واحدة فقط هي مقارنة (كائن obj) بينما ، تقوم واجهة المقارنة بتعريف طريقتين ، مقارنة (كائن obj1 ، كائن obj2) و يساوي (كائن obj).
  5. يقارن أسلوب compareTo (كائن obj) في Comparable كائن استدعاء الأسلوب مع الكائن المحدد الذي تم تمريره إلى الطريقة بينما تقارن المقارنة (Object obj1، Object obj2) method of Comparator الكائنات obj1 مع obj2 التي يتم تمريرها إلى الطريقة.
  6. توفر فئة المجموعات طريقة فرز "Collections.sort (List lst)" لفرز الكائنات من النوع المقارن. توفر فئة المجموعات طريقة الفرز Collections.sort (List، Comparator) لفرز الكائنات من نوع المقارنة.

استنتاج:

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

Top