מדריך להזמנת גויאבה

1. סקירה כללית

במאמר זה נסתכל על מזמין כיתה מספריית גויאבה.

ה מזמין הכיתה מיישמת את משווה ממשק ונותן לנו ממשק API שוטף לשימוש ליצירה ושרשור של משווים.

בתור מדד מהיר, כדאי גם להסתכל על החדש Comparator.comparing () API - המספק פונקציונליות דומה; הנה דוגמה מעשית המשתמשת ב- API הזה.

2. יצירה מזמין

מזמין יש שיטת בנייה שימושית שמחזירה מופע מתאים שניתן להשתמש בו ב- סוג() שיטה באוספים או בכל מקום אחר שבו מופע של משווה נחוץ.

אנו יכולים ליצור מופע של סדר טבעי על ידי ביצוע שיטה טִבעִי():

רשימת מספרים שלמים = Arrays.asList (3, 2, 1); integers.sort (Ordering.natural ()); assertEquals (Arrays.asList (1,2,3), מספרים שלמים);

בואו נגיד שיש לנו אוסף של אדם חפצים:

אדם בכיתה {פרטי שם מחרוזת; גיל שלם פרטי; // בונים סטנדרטיים, גטררים}

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

רשימת אנשים = Arrays.asList (אדם חדש ("מייקל", 10), אדם חדש ("אליס", 3)); הזמנת orderingByAge = הזמנה חדשה () {@Override public int השווה (Person p1, Person p2) {return Ints.compare (p1.age, p2.age); }}; persons.sort (orderingByAge); assertEquals (Arrays.asList (אדם חדש ("אליס", 3), אדם חדש ("מייקל", 10)), אנשים);

ואז נוכל להשתמש שלנו orderingByAge ולהעביר אותו ל סוג() שיטה.

3. שרשור הזמנות

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

רשימת אנשים = Arrays.asList (אדם חדש ("מייקל", 10), אדם חדש ("אליס", 3), אדם חדש ("תומאס", null)); Ordering ordering = Ordering .natural () .nullsFirst () .onResultOf (פונקציה חדשה () {@Override public ניתן להשוות (אדם)) {return person.age;}}); persons.sort (הזמנה); assertEquals (Arrays.asList (אדם חדש ("תומאס", null), אדם חדש ("אליס", 3), אדם חדש ("מייקל", 10)), אנשים);

הדבר החשוב לשים לב כאן הוא סדר שבו מזמיןs מבוצעות - הסדר הוא מימין לשמאל. אז ראשית onResultOf () מתבצעת ושיטה זו מחלצת את השדה שאנו רוצים להשוות.

לאחר מכן, nullFirst () משווה מבוצע. מסיבה זו, לאוסף הממוין המתקבל יהיה אדם אובייקט שיש לו ריק כמו גיל שדה בתחילת הרשימה.

בסוף תהליך המיון, גיל משווים שדות באמצעות הזמנה טבעית כמפורט בשיטה טִבעִי().

4. מסקנה

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

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


$config[zx-auto] not found$config[zx-overlay] not found