طرق ArrayList
| English | العربية |
|---|---|
| ArrayList/əˈreɪ lɪst/ | ArrayList |
Insertion changes the later indices
- An ArrayList starts
[cat, dog].add(1, "owl")makes[cat, owl, dog], thenremove(0)makes[owl, dog].get(1)now returns"dog". - Trace the whole list after each operation: insertion shifts later elements right, while removal shifts them left. An index identifies a position, not a permanent identity for an element.
A list has a size and an element type
- An ArrayList 动态数组 stores a resizable sequence of references. Import
java.util.ArrayListand declareArrayList<String> names = new ArrayList<String>();; size initially equals 0. - The type parameter is a reference type, so use
Integerfor whole numbers rather thanint.size()counts stored elements; an initial capacity is space available for growth and does not create that many elements.
Append or insert within the right bounds
add(x)appends an element;add(i, x)inserts before the current element at i. For insertion, valid indices run from 0 through size inclusive, soadd(size(), x)appends too.get(i)reads an existing element, so its indices run from 0 through size minus 1. An empty list has no valid get index;get(size())is out of bounds even though insertion there is allowed.
بالنسبة لقائمة بحجم 2، يُسمح باستدعاء add(2, value) ولكن get(2) يكون خارج الحدود المسموحة.
يسمح الإدراج بموقع يساوي الحجم؛ أما الاستخراج (get) فيستلزم وجود فهرس موجود أصغر تماماً من الحجم.
Replacement and removal return different results
set(i, x)replaces an existing element and returns the old value without changing size.remove(int i)removes the element at that position, returns it, and decreases size by one.- The overloaded
remove(Object value)instead removes the first equal value and returns whether a match was removed. In anArrayList<Integer>,remove(1)means index 1; useremove(Integer.valueOf(1))to remove the value 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);
}
}
The two outputs are 2 [1, 1] and true [2, 1]. Each list loses one element, but a different one.
add, get, and remove
بعد remove(0)، ينتقل dog إلى الفهرس 0 وينخفض الحجم إلى 1.
كيف تحصل على عدد العناصر في قائمة ArrayList؟
تستخدم ArrayList size(); بينما تستخدم المصفوفات .length.
بالنسبة لـ ArrayList list تحتوي على ثلاثة عناصر على الأقل، كيف يمكنك الوصول إلى العنصر عند الفهرسة 2؟
تستخدمArrayList get(i)، وليس [i].
بعد تنفيذ a.remove(0) على {cat, dog}، ما هي قيمة a.get(0)?
يتم حذف cat بواسطة remove(0)؛ وينتقل dog إلى الفهرس 0.
يمكنك الوصول إلى عنصر فيArrayList باستخدام أقواس مربعة، مثل list[0].
تستخدمArrayList طرق (get/set)، وليس صيغة [] .
تضيف add(x) ذات الحجة الواحدة x...
تقوم add(x) بالإلصاق؛ وتقوم add(i, x) بالإدراج عند الفهرس i .
بدءًا من [1, 2, 1]، يتم استدعاء remove(1) مع وسيط int. ما القيمة المُرجعة؟
يُزيل الـ overload المعرّف 1 العنصر الذي موقعه 2.
Choose by the declared argument type
- Java selects the overload using the argument type.
int index = 1; list.remove(index);removes position 1;Integer value = 1; list.remove(value);selects value removal. - A String list can remove
"owl"by value or index 0 by position. Decide which you mean before tracing shifts; finding no equal value returns false and leaves the list unchanged.
Arrays use a[i] and a.length; ArrayList uses get(i) and size(). Keep insertion bounds separate from existing-element bounds, and do not assume that an integer-looking argument to remove always means a stored value.
Check one replacement and one failed removal
- Starting from
[owl, dog],set(1, "fox")returns"dog"and leaves[owl, fox]with size 2.remove("cat")then returns false and changes nothing. - Check empty lists, the first/last valid positions, and a value that is absent. Read the overload and its return value as well as the resulting list; replacing, inserting and deleting have different contracts.
ArrayList is a resizable sequence accessed through methods. Insert at 0 through size; read, replace or remove an existing position at 0 through size minus 1. remove(int) deletes a position; remove(Object) deletes the first equal value if found.
After the stated insertion and removal, type the value returned by get(0).
The final list is [owl, dog], with owl at index 0.