تقوم فئة Java Pair بتخزين القيمة في مجموعة زوج القيمة الرئيسية. من المفيد الحصول على قيمتين. تُعرف تركيبة القيمة الرئيسية هذه بالصفوف.
تكون الأزواج مفيدة عندما نريد إرجاع قيمتين من إحدى الطرق. على سبيل المثال، إذا كانت لدينا طريقة لحساب الجذر التربيعي لعدد ما ونريد طباعة الرقم بجذره التربيعي. وبالتالي، يمكننا طباعة الناتج في مجموعة من الأرقام وجذرها التربيعي (على سبيل المثال، (5، 25)) باستخدام فئة الزوج.
فرز قائمة الصفيف في جافا
جافا يوفر فئة زوج يحمل في ثناياه عوامل من Java 8.
في هذا القسم، سنرى كيفية استخدام فئة Pair في Java. علاوة على ذلك، سوف نقوم بإنشاء فئة الزوج المخصصة لدينا.
فئة الزوج في جافا
منذ Java 8، توفر Java فئة زوجية لتخزين القيم في مجموعات أزواج المفاتيح. لتخزين القيمة في مجموعة زوجية، نحتاج إلى استخدام المُنشئ ذي المعلمات الذي يوفره ملف javafx.util.Pair فصل.
تعتبر فئة الزوج مفيدة أثناء تخزين القيمة في بنية بيانات شجرة. أثناء إجراء عملية العودية على بنية بيانات شجرة، من السهل تمرير القيمة من عقدة إلى عقدة أخرى باستخدام فئة الزوج. يمكن أن تكون هذه القيم الحد الأدنى والحد الأقصى لقيم العقدة حتى تلك العقدة. وهذا من شأنه أن يمنع المؤشر من إعادة زيارة رموز معينة بشكل متكرر.
في Java، يتم استخدام الخرائط لتخزين القيمة في شكل مجموعة زوج مفاتيح. يقومون بتخزين القيمة كصفوف وتشغيلها ككائن واحد.
لتنفيذ فئة Pair، نحتاج إلى استيراد الحزمة الأصلية الخاصة بها:
import javafx.util.Pair;
تستخدم فئة الزوج المدمجة الترميز التالي للمفتاح والقيمة تمامًا مثل الخريطة في جاوة لتخزين الزوج:
تصريح:
يتم تعريف كائن فئة الزوج على النحو التالي:
Pair p = new Pair(5 ,'Five');
سيؤدي بناء الجملة أعلاه إلى إنشاء كائن من النوع و البناء سوف يأخذ القيمة 5 و'خمسة' ويخزنهما في فئة الزوج.
طرق فئة الزوج
يتم توفير الطرق التالية بواسطة فئة Java Pair:
احصل على مفتاح()
يحصل على المفتاح للزوج المحدد ويعيد المفتاح للزوج المحدد. ويتم الإعلان عنها على النحو التالي:
public K getKey()
الحصول على قيمة()
يحصل على قيمة الزوج المحدد ويعيد قيمة الزوج. ويتم الإعلان عنها على النحو التالي:
public V getValue()
رمز التجزئة ()
يقوم بإنشاء رمز التجزئة للزوج؛ يتم حساب رمز التجزئة هذا باستخدام اسم الزوج وقيمته. فهو يتجاوز فئة HashCode ويعيد رمز التجزئة للزوج. ويتم الإعلان عنها على النحو التالي:
public int hashCode()
يساوي ()
يتم استخدامه لاختبار الزوج من أجل المساواة مع الزوج الآخر. إذا لم يتم تحديد الكائن للاختبار أو كان خاليًا، فسوف يُرجع خطأ. سيتم اعتبار الزوجين المحددين متساويين فقط إذا كانت أسماؤهما وقيمهما متماثلة. ويتم الإعلان عنها على النحو التالي:
public boolean equals(Object o)
يستغرق الأمر كائن الوسيطات '-o' لاختبار المساواة مع الزوج. فهو يتجاوز العناصر المتساوية في كائنات الفئة ويعيد القيمة الصحيحة إذا كان الزوج المحدد متساويًا؛ وإلا فإنه سيعود كاذبا.
خوارزميات البحث
إلى سلسلة()
يتم استخدامه لتمثيل الزوج كسلسلة. في طريقة toString()، يتم دائمًا استخدام محدد الاسم/القيمة الافتراضي ='. إنه يتجاوز toString في كائن الفئة ويعيد قيمة السلسلة للزوج. ويتم الإعلان عنها على النحو التالي:
public String toString()
زوج منشئ الطبقة
يقوم منشئ فئة الزوج بإنشاء زوج جديد. يأخذ القيم الرئيسية والزوجية كوسيطة. ويتم الإعلان عنها على النحو التالي:
public Pair(K key, V value)
أنواع الطبقات الزوجية
هناك نوعان من فئات الزوج في جافا، وهما كما يلي:
لماذا نحتاج إلى فئة الزوج
يتم استخدام فئة الزوج للحصول على القيمة في مجموعة زوج المفاتيح. بمعنى آخر، يمكننا القول أن فئة الزوج توفر طرقًا تُرجع قيمتين معًا. قد يكون هناك الكثير من الأسباب التي تجعلنا نستخدم فئة Pair.
فيما يلي بعض الحالات التي نحتاج فيها إلى استخدام فئة Pair:
- لنفترض أننا نريد إرجاع قيم متعددة. ومع ذلك، يمكننا القيام بذلك عن طريق استخدام بعض هياكل البيانات مثل Arrays وHashMap، ولكن عندما نتعامل مع مجموعة من المتغيرات معًا، فإن إرجاع كل منهما قد يكون معقدًا. في مثل هذه الحالات، ستكون فئة Pair مفيدة جدًا.
- إذا أردنا إجراء عملية حسابية وأردنا عرض الرقم مع مخرجاته، فإننا نفعل ذلك بسهولة باستخدام فئة الزوج.
- إذا أردنا إجراء عملية على بنية بيانات شجرة.
مثال على فئة الزوج
دعونا نفهم ذلك بمثال أساسي:
فئة الزوج هي جزء من جافا اف اكس لذلك نحن بحاجة إلى إنشاء وتكوين مشروع JavaFX. انظر كيفية الإنشاء مشروع JavaFX في Eclipse .
تقسيم سلسلة C++
الآن، قم بإنشاء ملف فئة ضمن src مجلد.
نحن نقوم بإنشاء فئة TestPair.
جافا TestPair:
import javafx.util.Pair; public class TestPair { public static void main(String[] args) { Pair p = new Pair(5,'Five'); System.out.println('The key is :' + p.getKey()); System.out.println('The Pair value is :' + p.getValue()); } }
في البرنامج أعلاه، نحن نأخذ قيمة زوجية تحتوي على قيمة مفتاح عدد صحيح وقيمة زوج سلسلة. نحن نعلن عن فئة زوجية باستخدام تركيبها القياسي ونطبع قيمتها باستخدام طريقة getKey() وgetValue() لفئة الزوج. سيعرض الإخراج التالي:
انتاج:
The key is :5 The Pair value is :Five
فئة زوجية مخصصة
إذا كنت لا ترغب في استخدام فئة Pair المضمنة، فيمكنك تخصيص فئة Pair باستخدام Generics. خذ بعين الاعتبار المثال أدناه:
تخصيصPair.java:
ماذا يعني هذا XD
public class CustomizedPair { int key; String value; public CustomizedPair(int key, String value) //Constructor of the class { this.key = key; this.value = value; } public void print(){ System.out.println(''); } public static void main(String[] args){ CustomizedPair a = new CustomizedPair(1,'Hello'); a.print(); } }
من الكود أعلاه، قمنا بإنشاء فئة زوجية مخصصة وقمنا بتخزين قيمتين في متغير واحد وطباعته.
انتاج:
وبالتالي، باستخدام الأساليب العامة، يمكننا الاستفادة من فوائد فئة الزوج دون استخدام JavaFX.
دعونا نفهم سلوكه مع الوظائف:
إقران الفئة مع الوظائف
يمكننا استخدام فئة الزوج لإرجاع قيمتين باستخدام دالة. لتنفيذ هذه العملية، يجب أن يكون نوع الإرجاع للدالة زوجًا. خذ بعين الاعتبار المثال أدناه:
TestPair2.java:
import java.util.Scanner; public class TestPair2 { public static void main(String[] args) { Scanner s = new Scanner(System.in); CustomizedPair a = func(s); a.print(); } public static CustomizedPair func (Scanner s){ System.out.println('Enter Value'); String key = s.next(); System.out.println('Enter Key'); int value = s.nextInt(); CustomizedPair a = new CustomizedPair(value, key); return a; } }
انتاج:
Enter Value Five Enter Key 5
خاتمة:
تعد الفئات الزوجية مفيدة جدًا لتحسين كفاءة التعليمات البرمجية. إحدى الحالات المفيدة لفئة الزوج هي تخزين القيمة في بنية بيانات الشجرة. يمكننا استخدام فئات الزوج المضمنة أو تخصيص فئاتنا. إذا تم استخدامها بشكل صحيح، فإنها ستكون مفيدة للغاية.