logo

זוג ג'אווה

מחלקת Java Pair מאחסנת ערך בשילוב צמד המפתח-ערך. זה שימושי לקבלת שני ערכים. שילוב מפתח-ערך זה ידוע בתור tuples.

הזוגות שימושיים כאשר אנו רוצים ששני ערכים יוחזרו משיטה. למשל, אם יש לנו שיטה שמחשבת את השורש הריבועי של מספר ואנו רוצים להדפיס את המספר עם השורש הריבועי שלו. לפיכך, אנו יכולים להדפיס את הפלט בשילוב של מספרים והשורש הריבועי שלו (למשל, (5, 25)) באמצעות מחלקת הצמד.

Java מספק מחלקת זוג מובנית מ-Java 8.

בחלק זה נראה כיצד להשתמש במחלקה Pair ב-Java. בנוסף, ניצור את כיתת הזוגות המותאמת אישית שלנו.

כיתת זוג ב-Java

מאז Java 8, Java מספקת מחלקה Pair לאחסון הערכים בשילובי צמד מפתחות. כדי לאחסן את הערך בשילוב זוג, עלינו להשתמש בבנאי הפרמטרים שסופק על ידי ה- javafx.util.Pair מעמד.

המחלקה Pair שימושית בזמן אחסון הערך במבנה נתוני עץ. בזמן ביצוע פעולת הרקורסיה על מבנה נתוני עץ, קל להעביר ערך מצומת אחד לצומת אחר באמצעות מחלקת Pair. ערכים אלה יכולים להיות ערכי צומת מינימליים ומקסימליים עד לצומת זה. זה ימנע מהמצביע לבקר שוב ושוב בקודים מסוימים.

ב-Java, המפות משמשות לאחסון הערך בצורה של שילוב של צמד מפתחות. הם מאחסנים את הערך בתור tuples ומפעילים אותם כאובייקט בודד.

כדי ליישם את מחלקת ה-Pair, עלינו לייבא את חבילת האב שלה:

 import javafx.util.Pair; 

מחלקת זוג מובנית משתמשת בסימון הבא של מפתח וערך בדיוק כמו מפה בג'אווה כדי לאחסן זוג:

 

הַצהָרָה:

אובייקט המחלקה Pair מוצהר באופן הבא:

 Pair p = new Pair(5 ,'Five'); 

התחביר לעיל ייצור אובייקט מהסוג וה- בַּנַאִי ייקח את הערך 5 ו-'חמש' ויאחסן אותם במחלקה Pair.

שיטות כיתה זוגיות

השיטות הבאות מסופקות על ידי מחלקת Java Pair:

להשיג מפתח()

הוא מקבל את המפתח עבור הזוג הנתון ומחזיר את המפתח עבור הזוג שצוין. הוא מוצהר כך:

 public K getKey() 

getValue()

הוא מקבל את הערך עבור הזוג הנתון ומחזיר את הערך של הזוג. הוא מוצהר כך:

 public V getValue() 

hashCode()

הוא מייצר את קוד ה-hash עבור הזוג; ה-hashcode הזה מחושב באמצעות השם והערך של הזוג. זה עוקף את מחלקת HashCode ומחזיר את קוד ה-hash עבור הזוג. הוא מוצהר כך:

 public int hashCode() 

שווים()

הוא משמש כדי לבדוק את השוויון של הזוג עם הזוג השני. אם האובייקט לא צוין לבדיקה או שהוא null, הוא יחזיר false. שני הזוגות הנתונים ייחשבו כשווים אם ורק אם השמות והערכים שלהם זהים. הוא מוצהר כך:

שלום עולם עם ג'אווה
 public boolean equals(Object o) 

צריך את אובייקט הארגומנטים '-o' כדי לבדוק את השוויון עם הזוג. הוא עוקף את השווים במחלקה Objects ומחזיר אמת אם הזוג הנתון שווה; אחרת, הוא יחזיר false.

toString()

הוא משמש לייצג את הזוג כמחרוזת. בשיטת toString() נעשה שימוש תמיד ב-name/value delimiter=' המוגדר כברירת מחדל. הוא עוקף את ה-toString ב-class Object ומחזיר את ערך ה-String של הזוג. הוא מוצהר כך:

 public String toString() 

בונה כיתת זוג

הבנאי מחלקות זוג יוצר זוג חדש. הוא לוקח את ערכי המפתח והזוג כארגומנט. הוא מוצהר כך:

 public Pair(K key, V value) 

סוגי שיעורי זוג

ישנם שני סוגים של מחלקות זוג ב-Java, שהם כדלקמן:

    כיתת זוג בלתי משתנה:מחלקות ה-Immutable Pair הן מחלקות כאלה שבהן לא ניתן לשנות את ערך האובייקט אם הוא מוגדר פעם אחת; זה אומר שאנחנו לא יכולים להשתמש בשיטת seters כדי לשנות את הערכים המוגדרים. בדרך כלל, הערך יישאר קבוע אם הוא מוגדר.כיתת זוג ניתנת לשינוי:המחלקות הניתנות לשינוי מאפשרות לנו לשנות את הערך בכל עת בתוכנית. אנו יכולים להשתמש בשיטות גטר ו-seters כדי לגשת ולשנות את הערך של אובייקט. נוכל לשנות את הערכים בהמשך התוכנית גם אם הגדרנו אותם בהתחלה. ה pair.setValue(a,b) ו pair.getValue() נעשה שימוש בשיטות כדי להגדיר ולגשת לערך האובייקט.

למה אנחנו צריכים שיעור זוגי

מחלקת הזוג משמשת כדי לקבל את הערך בשילוב צמד מפתחות. במונחים אחרים, אנו יכולים לומר שמחלקת הצמד מספקת שיטות המחזירות שני ערכים יחד. יכולות להיות הרבה סיבות מדוע אנו משתמשים בכיתה Pair.

להלן כמה מקרים שבהם עלינו להשתמש במחלקת Pair:

  • נניח שאנו רוצים להחזיר מספר ערכים. עם זאת, אנו יכולים לעשות זאת על ידי שימוש במבני נתונים מסוימים כמו Arrays ו- HashMap, אך כאשר אנו עוסקים בצביר של משתנים יחד, אז החזרת שניהם עלולה להיות מסובכת. במקרים כאלה, שיעור הצמד יעזור מאוד.
  • אם אנחנו רוצים לבצע פעולה מתמטית ואנו רוצים להציג את המספר יחד עם הפלט שלו, אז נעשה זאת בקלות על ידי שימוש במחלקה Pair.
  • אם נרצה לבצע פעולה על מבנה נתוני עץ.

דוגמה למחלקה זוגית

בואו נבין את זה עם דוגמה בסיסית:

כיתת זוג היא חלק מה- JavaFX , אז אנחנו צריכים ליצור ולהגדיר פרויקט JavaFX. ראה כיצד ליצור פרויקט JavaFX ב-Eclipse .

כעת, צור קובץ כיתה תחת src תיקייה.

אנו יוצרים כיתת TestPair.

TestPair.java:

 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()); } } 

בתוכנית לעיל, אנו לוקחים ערך זוג שמכיל ערך מפתח שלם וערך זוג מחרוזת. אנו מכריזים על מחלקה Pair באמצעות התחביר הסטנדרטי שלה ומדפיסים את הערך שלה באמצעות שיטת getKey() ו-getValue() של מחלקת הזוג. זה יציג את הפלט הבא:

תְפוּקָה:

 The key is :5 The Pair value is :Five 

כיתת זוג מותאמת אישית

אם אינך רוצה להשתמש במחלקת הצמד המובנית, תוכל להתאים אישית מחלקת זוג באמצעות Generics. שקול את הדוגמה הבאה:

CustomizedPair.java:

list.sort java
 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(); } } 

מהקוד לעיל, יצרנו מחלקה Customized Pair ואחסנו שני ערכים במשתנה יחיד ומדפיסים אותו.

תְפוּקָה:

 

לפיכך, באמצעות שיטות גנריות, אנו יכולים לקחת את היתרונות של מחלקה Pair מבלי להשתמש ב-JavaFX.

בואו נבין את ההתנהגות שלו עם פונקציות:

צמד שיעור עם פונקציות

אנו יכולים להשתמש במחלקה Pair כדי להחזיר שני ערכים באמצעות פונקציה. כדי לבצע תהליך זה, סוג הפונקציה ההחזרה חייב להיות זוג. שקול את הדוגמה הבאה:

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 

סיכום:

שיעורי זוג שימושיים מאוד לשיפור יעילות הקוד. מקרה שימושי אחד של מחלקת Pair הוא אחסון הערך במבנה נתוני העץ. אנחנו יכולים להשתמש בשיעורי זוג מובנים או להתאים אישית את השיעורים שלנו. אם נעשה בהם שימוש נכון, הם יעזרו מאוד.