הסרת אלמנט ממערך בג'אווה

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

במדריך מהיר זה נלמד על הדרכים השונות בהן אנו יכולים הסר אלמנט ממערך ב- Java באמצעות ספריית Apache Commons Lang.

2. מייבן

בואו נוסיף את commons-lang3 התלות בפרויקטים שלנו pom.xml קוֹבֶץ:

 org.apache.commons commons-lang3 3.9 

3. הסרת אלמנט

לפני שנתחיל, בואו נסתכל מה קורה כאשר אנו מסירים אלמנט ממערך מבלי להשתמש ב- ArrayUtils מחוג מספריית Apache Commons Lang.

בהתחשב במערך למטה, בואו נסיר אלמנט ב- אינדקס 2:

דרך פשוטה לעשות זאת תהיה החלפת הערך המאוחסן ב- אינדקס 2 עם הערך המאוחסן ב אינדקס 3 עד שנגיע לסוף המערך:

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

בואו נסתכל על ייצוג המערך בעת הסרת אלמנט באמצעות ה- לְהַסִיר שיטה מ ArrayUtils מחלקה של אפאצ'י קומונס לאנג:

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

ה ArrayUtils class מספק שתי דרכים להסרת אלמנט ממערך. בואו נסתכל על אלה בהמשך.

4. שימוש באינדקס כקלט

הדרך הראשונה בה אנו יכולים להסיר אלמנט היא על ידי האינדקס שלו עם הסר ArrayUtils #:

public int [] removeAnElementWithAGivenIndex (מערך int [], אינדקס int) {החזר ArrayUtils.remove (מערך, אינדקס); }

וריאציה נוספת היא להסיר את כל שיטה, בה אנו יכולים להשתמש כדי להסיר מספר אלמנטים ממערך, בהתחשב במדדים שלהם:

public int [] removeAllElementsWithGivenIndices (int [] array, int ... index) {return ArrayUtils.removeAll (array, indices); }

5. שימוש באלמנט כקלט

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

public int [] removeFirstOccurrenceOfGivenElement (מערך int [], אלמנט int) {החזר ArrayUtils.removeElement (מערך, אלמנט); }

הנה וריאציה שימושית נוספת של שיטה זו ArrayUtils # removeElements, במקרה שיש יותר מאלמנט אחד שנרצה להסיר:

public int [] removeAllGivenElements (int [] array, int ... elements) {return ArrayUtils.removeElements (array, elements); }

לפעמים נרצה להסיר את כל המופעים של אלמנט נתון. אנו יכולים לעשות זאת באמצעות ArrayUtils # removeAllOccurences:

public int [] removeAllOccurrencesOfAGivenElement (int [] array, int element) {return ArrayUtils.removeAllOccurences (array, element); }

6. מסקנה

במאמר זה בדקנו את הדרכים השונות להסרת אלמנט / אלמנטים ממערך באמצעות ספריית Apache Commons Lang.

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


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