הסרת אלמנט מרשימת ArrayList

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

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

רשימת ספורט = ArrayList חדש (); sports.add ("כדורגל"); sports.add ("כדורסל"); sports.add ("בייסבול"); sports.add ("אגרוף"); sports.add ("רכיבה על אופניים");

2. הסר ArrayList #

רשימת מערך יש שתי שיטות זמינות להסרת אלמנט, העברת אינדקס האלמנט להסרה, או מעביר את האלמנט עצמו להסיר, אם קיים. אנו הולכים לראות את שני השימושים.

2.1. הסר לפי אינדקס

באמצעות לְהַסִיר העברת אינדקס כפרמטר, אנחנו יכולים הסר את האלמנט במיקום שצוין ברשימה והעביר את כל האלמנטים הבאים שמאלה, תוך הפחתת אחד מהמדדים שלהם. לאחר הביצוע, לְהַסִיר השיטה תחזיר את האלמנט שהוסר:

ספורט. הסר (1); // מכיוון שהמדד מתחיל ב 0, זה יסיר את "כדורסל" assertEquals (4, sports.size ()); assertNotEquals (sports.get (1), "כדורסל");

2.2. הסר לפי אלמנט

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

sports.remove ("בייסבול"); assertEquals (4, sports.size ()); assertFalse (sports.contains ("בייסבול"));

3. הסרה תוך כדי איטרציה

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

בואו נראה איך אנחנו יכולים להיפטר מרכיב בלולאה:

איטרטור איטרטור = sports.iterator (); בעוד (iterator.hasNext ()) {if (iterator.next (). שווה ("אגרוף")) {iterator.remove (); }}

4. ArrayList # removeIf (JDK 8+)

אם אנחנו משתמשים JDK 8 ומעלה גרסאות, אנחנו יכולים לנצל רשימת מערך#להסיר אם איזה מסיר את כל האלמנטים של רשימת מערך המספקים פרדיקט נתון.

sports.removeIf (p -> p.equals ("רכיבה על אופניים")); assertEquals (4, sports.size ()); assertFalse (sports.contains ("רכיבה על אופניים"));

לבסוף, אנו יכולים לעשות זאת באמצעות ספריות צד ג 'כמו Apache Commons, ואם אנו רוצים להעמיק, נוכל לראות כיצד להסיר את כל ההתרחשויות הספציפיות בצורה יעילה.

5. מסקנה

במדריך זה בדקנו את הדרכים השונות להסרת אלמנטים מ- ArrayList בג'אווה.

כרגיל, כל הדוגמאות המשמשות במדריך זה זמינות ב- GitHub.


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