ספר בישול להזמנת גויאבה
1. הקדמה
ספר בישול זה ממחיש כיצד להשתמש בסגנון גויאבה והזמנות. זה ממשיך את ספר הבישול ואת פורמט המיקוד לדוגמא שהתחלתי בפוסט הקודם על אוספי גויאבה.
2. ספר הבישול
העוסקים באפסים באוסף
אפסים ראשונים
List toSort = Arrays.asList (3, 5, 4, null, 1, 2); Collections.sort (toSort, Ordering.natural (). NullsFirst ()); assertThat (toSort.get (0), nullValue ());
אפסים אחרונים
List toSort = Arrays.asList (3, 5, 4, null, 1, 2); Collections.sort (toSort, Ordering.natural (). NullsLast ()); assertThat (toSort.get (toSort.size () - 1), nullValue ());
הזמנה טבעית
List toSort = Arrays.asList (3, 5, 4, 1, 2); Collections.sort (toSort, Ordering.natural ()); assertTrue (Ordering.natural (). הוא הוזמן (toSort));
שרשור 2 הזמנות
List toSort = Arrays.asList (3, 5, 4, 1, 2); Collections.sort (toSort, Ordering.natural (). הפוך ());
להפוך הזמנה
List toSort = Arrays.asList (3, 5, 4, null, 1, 2); Collections.sort (toSort, Ordering.natural (). NullsLast (). הפוך ()); assertThat (toSort.get (0), nullValue ());
סדר מותאם אישית - מיתרים לפי אורך
מחלקה פרטית OrderingByLenght מרחיב הזמנה {@Override public int השווה (String s1, String s2) {return Ints.compare (s1.length (), s2.length ()); }} רשימה toSort = Arrays.asList ("zz", "aa", "b", "ccc"); סדר לפי אורך = חדש OrderingByLenght (); Collections.sort (toSort, לפי אורך); הזמנה צפויהסדר = Ordering.explicit (Lists.newArrayList ("b", "zz", "aa", "ccc")); assertTrue (expectOrder.isOrdered (toSort))
בדיקת סדר מפורש
רשימה toSort = Arrays.asList ("zz", "aa", "b", "ccc"); סדר לפי אורך = חדש OrderingByLenght (); Collections.sort (toSort, לפי אורך); הזמנה של expectOrder = Ordering.explicit (Lists.newArrayList ("b", "zz", "aa", "ccc")); assertTrue (expectOrder.isOrdered (toSort));
בדיקת הזמנת מחרוזות
רשימה toSort = Arrays.asList (3, 5, 4, 2, 1, 2); Collections.sort (toSort, Ordering.natural ()); assertFalse (Ordering.natural (). isStrictly Ordered (toSort));
הזמנה משנית
רשימה toSort = Arrays.asList ("zz", "aa", "b", "ccc"); סדר לפי אורך = חדש OrderingByLenght (); Collections.sort (toSort, byLength.compound (Ordering.natural ())); סדר סדרOderder = Ordering.explicit (Lists.newArrayList ("b", "aa", "zz", "ccc")); assertTrue (expectOrder.isOrdered (toSort));
דוגמה מורכבת להזמנות בהתאמה אישית - עם שרשור למיין באמצעות toString יִצוּג מיין, ואז מצא (חיפוש בינארי) מצא מינימום / מקסימום ללא צורך למיין (מהר יותר) יצירת עותק ממוין של הרשימה מהזמנה יצירת עותק חלקי ממוין - כמה שפחות אלמנטים הזמנה באמצעות פונקציה מתווכת – הערה: לוגיקת המיון תחילה תריץ את המספרים דרך הפונקציה - תהפוך אותם למיתרים - ואז תמיין לפי סדר טבעי על המיתרים גויאבה היא ספרייה מקיפה ושימושית להפליא - הנה כמה ממשקי API נוספים המכוסים בצורה של ספר בישול: תהנה. לפורמט הניסיוני הזה - ספר הבישול - יש מוקד ברור - פשטות ומהירות, כך שיש לרוב המתכונים אין הסבר נוסף מלבד דוגמת הקוד עצמה. וכפי שציינתי קודם - זה כ מסמך חי - דוגמאות חדשות ומקרי שימוש יתקבלו בברכה בתגובות, ואמשיך להוסיף משלי כשאני נתקל בהם. יישום כל הדוגמאות וקטעי הקוד ניתן למצוא באתר GitHub - זהו פרויקט מבוסס Maven, כך שיהיה קל לייבא ולהפעיל אותו כפי שהוא.רשימה toSort = Arrays.asList ("zz", "aa", null, "b", "ccc"); Collections.sort (toSort, OrderingByLenght חדש (). הפוך (). מתחם (Ordering.natural ()). NullsLast ()); System.out.println (toSort);
List toSort = Arrays.asList (1, 2, 11); Collections.sort (toSort, Ordering.usingToString ()); OrderingOrdorder = Ordering.explicit (Lists.newArrayList (1, 11, 2)); assertTrue (expectOrder.isOrdered (toSort));
רשימה toSort = Arrays.asList (1, 2, 11); Collections.sort (toSort, Ordering.usingToString ()); int נמצא = Ordering.usingToString (). binarySearch (toSort, 2); System.out.println (נמצא);
List toSort = Arrays.asList (2, 1, 11, 100, 8, 14); int נמצא = Ordering.usingToString (). דקה (toSort); assertThat (נמצא, שווה ל- (1));
רשימה toSort = Arrays.asList ("aa", "b", "ccc"); List sortedCopy = new OrderingByLenght (). SortedCopy (toSort); הזמנה של expectOrder = Ordering.explicit (Lists.newArrayList ("b", "aa", "ccc")); assertFalse (expectOrder.isOrdered (toSort)); assertTrue (expectOrder.isOrdered (sortedCopy));
רשימה toSort = Arrays.asList (2, 1, 11, 100, 8, 14); List minsteOf = Ordering.natural (). MinsteOf (toSort, 3); רשימה צפויה = Lists.newArrayList (1, 2, 8); assertThat (צפוי, שווה ל- (לפחות);
List toSort = Arrays.asList (2, 1, 11, 100, 8, 14); Ordering ordering = Ordering.natural (). OnResultOf (Functions.toStringFunction ()); List sortedCopy = ordering.sortedCopy (toSort); רשימה צפויה = Lists.newArrayList (1, 100, 11, 14, 2, 8); assertThat (צפוי, שווה ל- (sortedCopy));
3. ספרי בישול נוספים של גויאבה
ספר בישול פונקציונלי של גויאבה
ספר בישול לאוספי גויאבה
4. מסקנה