המרה בין מערך לסט ב- Java
1. סקירה כללית
במאמר קצר זה נבחן המרה בין מַעֲרָך ו מַעֲרֶכֶת - תחילה באמצעות ג'אווה רגילה, אחר כך גויאבה וספריית אוספי Commons מאפצ'י.
מאמר זה הוא חלק מסדרת "Java - Back to Basic" כאן בבלדונג.
2. להמיר מַעֲרָך אל א מַעֲרֶכֶת
2.1. שימוש ב- Java רגיל
בואו נסתכל ראשית כיצד להפוך את המערך ל- מַעֲרֶכֶת באמצעות Java רגיל:
@Test הציבור בטל givenUsingCoreJavaV1_whenArrayConvertedToSet_thenCorrect () {Integer [] sourceArray = {0, 1, 2, 3, 4, 5}; הגדר targetSet = חדש HashSet (Arrays.asList (sourceArray)); }
לחלופין, ה- מַעֲרֶכֶת ניתן ליצור תחילה ואז למלא באלמנטים במערך:
@Test הציבור בטל givenUsingCoreJavaV2_whenArrayConvertedToSet_thenCorrect () {Integer [] sourceArray = {0, 1, 2, 3, 4, 5}; הגדר targetSet = חדש HashSet (); Collections.addAll (targetSet, sourceArray); }
2.2. שימוש בגוגל גויאבה
לאחר מכן, בואו נסתכל על המרת גויאבה ממערך לסט:
@Test public void givenUsingGuava_whenArrayConvertedToSet_thenCorrect () {Integer [] sourceArray = {0, 1, 2, 3, 4, 5}; הגדר targetSet = Sets.newHashSet (sourceArray); }
2.3. שימוש באוספי Apache Commons
לבסוף, בואו נעשה את ההמרה באמצעות ספריית אוסף Commons מ- Apache:
@ מבחן חלל ציבורי givenUsingCommonsCollections_whenArrayConvertedToSet_thenCorrect () {Integer [] sourceArray = {0, 1, 2, 3, 4, 5}; הגדר targetSet = חדש HashSet (6); CollectionUtils.addAll (targetSet, sourceArray); }
3. המרת סט למערך
3.1. שימוש ב- Java רגיל
עכשיו בואו נסתכל על ההפך - המרת קבוצה קיימת למערך:
@ מבחן הריק פומבי givenUsingCoreJava_whenSetConvertedToArray_thenCorrect () {Set sourceSet = Sets.newHashSet (0, 1, 2, 3, 4, 5); מספר שלם [] targetArray = sourceSet.toArray (מספר שלם חדש [0]); }
ציין זאת toArray (T חדש [0]) היא הדרך המועדפת להשתמש בשיטה על פני toArray (T חדש [גודל]). כפי שמוכיח אלכסיי שיפילב בפוסט בבלוג שלו, זה נראה מהיר יותר, בטוח ונקי יותר.
3.2. באמצעות גויאבה
הבא - פיתרון הגויאבה:
@Test הציבור בטל givenUsingGuava_whenSetConvertedToArray_thenCorrect () {Set sourceSet = Sets.newHashSet (0, 1, 2, 3, 4, 5); int [] targetArray = Ints.toArray (sourceSet); }
שימו לב שאנחנו משתמשים ב- שקעים ממשק API של גויאבה, כך שהפתרון הזה ספציפי לסוג הנתונים שאיתו אנו עובדים.
4. מסקנה
יישום כל הדוגמאות וקטעי הקוד ניתן למצוא באתר Github - זהו פרויקט מבוסס Maven, כך שיהיה קל לייבא ולהפעיל אותו כפי שהוא.