שיטות של ArrayList
הוצג| English | משמעות |
|---|---|
| ArrayList/əˈreɪ lɪst/ | ArrayList |
הוספה משנה את האינדקסים הבאים
- ArrayList מתחיל ב-
[cat, dog].add(1, "owl")יוצר[cat, owl, dog], ולאחר מכןremove(0)יוצר[owl, dog].get(1)מחזיר כעת"dog". - עקוב אחרי רשימה שלמה לאחר כל פעולה: הש插入 מזיז אלמנטים הבאים ימינה, בעוד הסרה מזיז אותם שמאלה. אינדקס מזהה מיקום, אך לא זהות קבועה לאלמנט.
לרשימה יש גודל וסוג אלמנט
- ArrayList מאחסן רצף מתכוונן של רפרנסים. ייבא
java.util.ArrayListוהצהרArrayList<String> names = new ArrayList<String>();; הגודל בהתחלה שווה ל-0. - פרמטר הסוג הוא סוג רפרנס, לכן השתמש ב-
Integerלמספרים שלמים במקום ב-int.size()סופר את האלמנטים המאוחסנים; קיבולת התחלתית היא מקום זמין לצמיחה ואינה יוצרת מספר רב של אלמנטים.
הוספה או הש插入 בתוך הגבולות הנכונים
add(x)מוסיף אלמנט בסוף;add(i, x)מכניס לפני האלמנט הנוכחי ב-i. עבור הוספה, אינדקסים תקפים נעים מ-0 עד הגודל כולל, ולכן גםadd(size(), x)מוסיף בסוף.get(i)קורא אלמנט קיים, ולכן האינדקסים שלו נעים מ-0 ועד הגודל מיinus 1. לרשימה ריקה אין אינדקס get תקף;get(size())הוא מחוץ לגבולות גם אם הש插入 שם מותר.
עבור רשימה בגודל 2, add(2, value) מותר אך get(2) הוא מחוץ לגבולות.
Difficulty 1/5 · 100 coins + a small bonus on first completion today
הוספה מאפשרת את המיקום בגודל; get דורש אינדקס קיים הקטן במידה מוחלטת מגודל.
החלפה והסרה מחזירות תוצאות שונות
set(i, x)מחליף אלמנט קיים ומחזיר את הערך הישן ללא שינוי בגודל.remove(int i)מסיר את האלמנט במיקום זה, מחזיר אותו, ומפחית את הגודל ב-1.- ה-overloaded
remove(Object value)במקום זה מסיר את הערך השווה הראשון ומחזיר האם נעשה הסרה של התאמה. בArrayList<Integer>,remove(1)מייצג את אינדקס 1; השתמשו בremove(Integer.valueOf(1))כדי להסיר את הערך 1.
import java.util.ArrayList;
import java.util.Arrays;
public class RemoveChoice {
public static void main(String[] args) {
ArrayList<Integer> byIndex = new ArrayList<>(Arrays.asList(1, 2, 1));
ArrayList<Integer> byValue = new ArrayList<>(Arrays.asList(1, 2, 1));
int removed = byIndex.remove(1);
boolean found = byValue.remove(Integer.valueOf(1));
System.out.println(removed + " " + byIndex);
System.out.println(found + " " + byValue);
}
}
שתי הפלטות הן 2 [1, 1] ו-true [2, 1]. לכל רשימה חסר אלמנט אחד, אך מדובר באלמנט שונה.
add, get, וremove
לאחר remove(0), הכלב עובר למדד 0 והגודל יורד ל-1.
איך מקבלים את מספר האלמנטים ברשימת ArrayList?
Difficulty 1/5 · 100 coins + a small bonus on first completion today
ArrayList משתמש ב-size(); מערכים משתמשים ב-.length.
עבור ArrayList list עם לפחות שלושה אלמנטים, כיצד גישים את האלמנט באינדקס 2?
Difficulty 1/5 · 100 coins + a small bonus on first completion today
ArrayList משתמש ב-funcget(i), ולא ב-syntax[i].
לאחר ביצוע a.remove(0) על {cat, dog}, מהו ערך ה-a.get(0)?
Difficulty 1/5 · 100 coins + a small bonus on first completion today
remove(0) מוחק את cat; dog עובר לאינדקס 0.
ניתן לגשת לאלמנט ב-ArrayList באמצעות סוגריים מרובעים, כמו list[0].
Difficulty 1/5 · 100 coins + a small bonus on first completion today
ArrayList משתמש ב-metods (get/set), ולא ב-syntax [] .
add(x) עם ארגומנט אחד מוסיף את x...
Difficulty 1/5 · 100 coins + a small bonus on first completion today
add(x) מוסיף בסוף; add(i, x) מזרים באינדקס i .
בהתחלה מ-[1, 2, 1], נקרא remove(1) עם ארגון מספר שלם. מה הערך המוחזר?
Difficulty 2/5 · 140 coins + a small bonus on first completion today
העומס של int מסיר את האינדקס 1, שבו האלמנט הוא 2.
בחר לפי סוג הפרמטר המוכרז
- Java בוחר את ה-overload על פי סוג הפרמטר.
int index = 1; list.remove(index);מסיר את המיקום 1;Integer value = 1; list.remove(value);בוחר הסרת ערך. - רשימת String יכולה להסיר ערך ב-
"owl"או אינדקס ב-0 לפי מיקום. קבע למי מתכוון לפני מעקב אחרי ההזזות; איתור ללא ערך שווה מחזיר false והרשימה נשארת ללא שינוי.
מאגרים משתמשים ב-a[i] ו-a.length; ArrayList משתמש ב-get(i) ו-size(). שמור על גבולי ההוספה נפרדים מגבולי האלמנטים הקיימים, ואין להניח שפרמטר הנראה כמו מספר שלם בהסרה מתייחס תמיד לערך מאוחסן.
בדוק החלפה אחת והסרה כושלת אחת
- החל מ
[owl, dog],set(1, "fox")מחזיר"dog"ומשאיר את[owl, fox]בגודל 2. לאחר מכןremove("cat")מחזיר false ואינו משנה דבר. - בדוק רשימות ריקות, מיקומים תקנים ראשונים/אחרונים וערך שאינו קיים. קרא את ה-overload ואת ערך החזרתו כמו גם את הרשימה התוצרת; החלפה, הכנסה ודיליה הם בעלי חוזים שונים.
ArrayList היא רצף עם יכולת התרחבות המיושר דרך מيثודים. הכנס ב-0 עד הגודל; קרא, החלף או הסר מיקום קיים ב-0 עד הגודל פחות 1. remove(int) מחק מיקום; remove(Object) מחק את הערך השווה הראשון אם נמצא.
After the stated insertion and removal, type the value returned by get(0).
Difficulty 1/5 · 100 coins + a small bonus on first completion today
The final list is [owl, dog], with owl at index 0.