ArrayList Methods · Métodos de ArrayList
| English | Español |
|---|---|
| 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.
For a list of size 2, add(2, value) is permitted but get(2) is out of bounds.
Insertion allows the position at size; get requires an existing index strictly smaller than size.
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 · y true [2, 1]. Each list loses one element, but a different one.
add, get, and remove · add, get y remove
After remove(0), dog shifts to index 0 and size drops to 1.
How do you get the number of elements in an ArrayList list?
ArrayList uses size(); arrays use .length.
For an ArrayList list with at least three elements, how do you access the element at index 2?
ArrayList uses get(i), not [i].
After a.remove(0) on {cat, dog}, what is a.get(0)?
remove(0) deletes cat; dog shifts to index 0.
You can access an ArrayList element with square brackets, like list[0].
ArrayList uses methods (get/set), not [] syntax.
add(x) with one argument adds x...
add(x) appends; add(i, x) inserts at index i.
Starting from [1, 2, 1], remove(1) is called with an int argument. What value is returned?
The int overload removes index 1, whose element is 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 · y a.length; ArrayList uses get(i) and · y 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 · retornos "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.