הסרת כל הכפילויות מרשימה ב- Java
הדרכה מהירה זו הולכת להראות לכם כיצד לנקות את האלמנטים הכפולים מרשימה - ראשית באמצעות Java רגיל, אחר כך גויאבה ולבסוף פתרון מבוסס Java 8 למבדה.
מאמר זה הוא חלק מה- "ג'אווה - חזרה לבסיסיסדרה כאן על באלדונג.
1. הסר כפילויות מרשימה באמצעות Java רגיל
הסרת האלמנטים הכפולים מרשימה עם מסגרת האוספים הרגילה של Java נעשית בקלות דרך סט:
חלל ציבורי givenListContainsDuplicates_whenRemovingDuplicatesWithPlainJava_thenCorrect () {List listWithDuplicates = Lists.newArrayList (0, 1, 2, 3, 0, 0); List listWithoutDuplicates = ArrayList חדש (HashSet חדש (listWithDuplicates)); assertThat (listWithoutDuplicates, hasSize (4)); }
כפי שאתה יכול לראות, הרשימה המקורית נותרה ללא שינוי.
2. הסר כפילויות מרשימה באמצעות גויאבה
ניתן לעשות זאת גם באמצעות גויאבה:
חלל ציבורי givenListContainsDuplicates_whenRemovingDuplicatesWithGuava_thenCorrect () {List listWithDuplicates = Lists.newArrayList (0, 1, 2, 3, 0, 0); List listWithoutDuplicates = Lists.newArrayList (Sets.newHashSet (listWithDuplicates)); assertThat (listWithoutDuplicates, hasSize (4)); }
ושוב, הרשימה המקורית נותרה ללא שינוי.
3. הסר כפילויות מרשימה באמצעות Java 8 Lambdas
לסיום - בואו נסתכל על פתרון חדש, באמצעות Lambdas בג'אווה 8; אנחנו הולכים ל להשתמש ב מוּבהָק() שיטת ממשק ה- API של Stream שמחזיר זרם המורכב מאלמנטים מובחנים על בסיס התוצאה שהוחזרה על ידי שווים() שיטה:
חלל ציבורי givenListContainsDuplicates_whenRemovingDuplicatesWithJava8_thenCorrect () {List listWithDuplicates = Lists.newArrayList (1, 1, 2, 2, 3, 3); List listWithoutDuplicates = listWithDuplicates.stream () .distinct () .collect (Collectors.toList ()); }
ויש לנו את זה - 3 דרכים מהירות לנקות את כל הפריטים הכפולים מתוך רשימה.
4. מסקנה
מאמר זה מדגים אותנו כמה קל לנו להסיר כפילויות מרשימה באמצעות Java רגיל, גוגל גויאבה ו- Java 8.
את היישום של כל הדוגמאות והקטעים הללו ניתן למצוא בפרויקט GitHub. זהו פרויקט מבוסס Maven כך שיהיה קל לייבא ולהפעיל אותו.