המרה בין מערך לסט ב- 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, כך שיהיה קל לייבא ולהפעיל אותו כפי שהוא.