המרה בין רשימה לסט בג'אווה

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

במאמר קצר זה, נסתכל על ההמרה בין א רשימה ו מַעֲרֶכֶת - החל מ- Java רגיל, באמצעות גויאבה וספריית אוספי Apache Commons, ולבסוף, עם Java 10.

מאמר זה הוא חלק מסדרת "Java - Back to Basic" כאן בבלדונג.

2. להמיר רשימה ל מַעֲרֶכֶת

2.1. עם Java רגיל

נתחיל בהמרה מ רשימה אל א מַעֲרֶכֶת באמצעות Java:

חלל ציבורי givenUsingCoreJava_whenListConvertedToSet_thenCorrect () {List sourceList = Arrays.asList (0, 1, 2, 3, 4, 5); הגדר targetSet = HashSet חדש (sourceList); }

כפי שאתה יכול לראות, תהליך ההמרה הוא בטיחותי וישר - מכיוון שבוני כל אוסף מקבלים אוסף אחר כמקור.

2.2. Wעם גויאבה

בואו נעשה את אותה המרה באמצעות גויאבה:

חלל ציבורי givenUsingGuava_whenListConvertedToSet_thenCorrect () {List sourceList = Lists.newArrayList (0, 1, 2, 3, 4, 5); הגדר targetSet = Sets.newHashSet (sourceList); }

2.3. עם אוספי Apache Commons

לאחר מכן, בואו נשתמש ב- API של Commons Collections כדי להמיר בין רשימה ו מַעֲרֶכֶת:

חלל ציבורי givenUsingCommonsCollections_whenListConvertedToSet_thenCorrect () {List sourceList = Lists.newArrayList (0, 1, 2, 3, 4, 5); הגדר targetSet = חדש HashSet (6); CollectionUtils.addAll (targetSet, sourceList); }

2.4. עם Java 10

אפשרות אחת נוספת היא להשתמש ב- Set.copyOf שיטת מפעל סטטית שהוצגה ב- Java 10:

חלל ציבורי givenUsingJava10_whenListConvertedToSet_thenCorrect () {List sourceList = Lists.newArrayList (0, 1, 2, 3, 4, 5); הגדר targetSet = Set.copyOf (sourceList); }

שים לב, כי א מַעֲרֶכֶת נוצר כך אינו ניתן לשינוי.

3. להמיר מַעֲרֶכֶת ל רשימה

3.1. עם Java רגיל

בואו נעשה את ההמרה ההפוכה - מ מַעֲרֶכֶת אל א רשימה - באמצעות Java:

חלל ציבורי givenUsingCoreJava_whenSetConvertedToList_thenCorrect () {Set sourceSet = Sets.newHashSet (0, 1, 2, 3, 4, 5); רשימת targetList = ArrayList חדש (sourceSet); }

3.2. עם גויאבה

ופתרון הגויאבה:

חלל ציבורי givenUsingGuava_whenSetConvertedToList_thenCorrect () {Set sourceSet = Sets.newHashSet (0, 1, 2, 3, 4, 5); רשימת targetList = Lists.newArrayList (sourceSet); } 

דומה מאוד לגישת Java, רק עם קוד קצת פחות משוכפל.

3.3. עם אוספי Apache Commons

בואו נראה כעת את פתרון אוספי Commons להמרה בין a מַעֲרֶכֶת ו רשימה:

חלל ציבורי givenUsingCommonsCollections_whenSetConvertedToList_thenCorrect () {Set sourceSet = Sets.newHashSet (0, 1, 2, 3, 4, 5); רשימת targetList = ArrayList חדש (6); CollectionUtils.addAll (targetList, sourceSet); }

3.4. עם Java 10

לבסוף, אנו יכולים להשתמש ב- List.copyOf שהוצג ב- Java 10:

חלל ציבורי givenUsingJava10_whenSetConvertedToList_thenCorrect () {Set sourceSet = Sets.newHashSet (0, 1, 2, 3, 4, 5); רשימה targetList = List.copyOf (sourceSet); }

עלינו לזכור שכתוצאה מכך רשימה אינו ניתן לשינוי.

4. מסקנה

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


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