Java : ArrayList 示例

Java 中的 ArrayList (Java SE 23 & JDK 23) 及其示例。
您将找到大多数 ArrayList<E> 方法的代码示例。

注解 :

  • 本文可能使用了翻译软件以方便阅读。 另请查看英文原文

简介

List 接口的可调整大小数组实现。实现所有可选的列表操作,并允许所有元素(包括 null)。除了实现 List 接口之外,此类还提供方法来操作用于内部存储列表的数组的大小。 (机器翻译)

Class diagram

final var list = new ArrayList<String>();
System.out.println(list); // []

list.add("aaa");
list.add("bbb");
list.add("ccc");
System.out.println(list); // [aaa, bbb, ccc]

System.out.println(list.get(0)); // aaa
System.out.println(list.get(1)); // bbb
System.out.println(list.get(2)); // ccc

Fields declared in AbstractList

modCount

请参阅下面的链接。

Constructors

ArrayList ()

构造一个初始容量为十的空列表。 (机器翻译)

final var list = new ArrayList<String>();
System.out.println(list); // []

list.add("aaa");
list.add("bbb");
list.add("ccc");
System.out.println(list); // [aaa, bbb, ccc]

ArrayList (int initialCapacity)

构造具有指定初始容量的空列表。 (机器翻译)

final var list = new ArrayList<Integer>(10000000);
System.out.println(list); // []

final var startTime = System.nanoTime();

for (int i = 0; i < 10000000; i++) {
    list.add(i);
}

final var endTime = System.nanoTime();

// 0.084715 sec.
System.out.printf("%f sec.%n", (endTime - startTime) / 1000000000.0);
final var list = new ArrayList<Integer>(1);
System.out.println(list); // []

final var startTime = System.nanoTime();

for (int i = 0; i < 10000000; i++) {
    list.add(i);
}

final var endTime = System.nanoTime();

// 0.160947 sec.
System.out.printf("%f sec.%n", (endTime - startTime) / 1000000000.0);

ArrayList (Collection<? extends E> c)

构造一个包含指定集合的​​元素的列表,按照集合迭代器返回的顺序排列它们。 (机器翻译)

final var c = List.of("aaa", "bbb", "ccc");
System.out.println(c); // [aaa, bbb, ccc]

final var list = new ArrayList<>(c);
System.out.println(list); // [aaa, bbb, ccc]

Methods

void add (int index, E element)

将指定元素插入此列表的指定位置。 (机器翻译)

final var src = List.of("a", "b", "c");
System.out.println(src); // [a, b, c]

{
    final var list = new ArrayList<>(src);
    System.out.println(list); // [a, b, c]

    list.add(0, "A");
    System.out.println(list); // [A, a, b, c]
}
{
    final var list = new ArrayList<>(src);
    System.out.println(list); // [a, b, c]

    list.add(1, "B");
    System.out.println(list); // [a, B, b, c]
}
{
    final var list = new ArrayList<>(src);
    System.out.println(list); // [a, b, c]

    list.add(2, "C");
    System.out.println(list); // [a, b, C, c]
}
{
    final var list = new ArrayList<>(src);
    System.out.println(list); // [a, b, c]

    list.add(3, "D");
    System.out.println(list); // [a, b, c, D]
}
{
    final var list = new ArrayList<>(src);
    System.out.println(list); // [a, b, c]

    //list.add(4, "D"); // IndexOutOfBoundsException
}

boolean add (E e)

将指定元素附加到此列表的末尾。 (机器翻译)

final var list = new ArrayList<String>();
System.out.println(list); // []

System.out.println(list.add("a")); // true
System.out.println(list); // [a]

System.out.println(list.add("b")); // true
System.out.println(list); // [a, b]

System.out.println(list.add("c")); // true
System.out.println(list); // [a, b, c]

boolean addAll (int index, Collection<? extends E> c)

从指定位置开始将指定集合中的所有元素插入此列表。 (机器翻译)

final var src = List.of("a", "b", "c");
System.out.println(src); // [a, b, c]

{
    final var list = new ArrayList<>(src);
    System.out.println(list); // [a, b, c]

    System.out.println(list.addAll(0, List.of("A1", "A2"))); // true
    System.out.println(list); // [A1, A2, a, b, c]
}
{
    final var list = new ArrayList<>(src);
    System.out.println(list); // [a, b, c]

    System.out.println(list.addAll(1, List.of("B1", "B2", "B3"))); // true
    System.out.println(list); // [a, B1, B2, B3, b, c]
}
{
    final var list = new ArrayList<>(src);
    System.out.println(list); // [a, b, c]

    System.out.println(list.addAll(2, List.of("C1", "C2", "C3", "C4"))); // true
    System.out.println(list); // [a, b, C1, C2, C3, C4, c]
}
{
    final var list = new ArrayList<>(src);
    System.out.println(list); // [a, b, c]

    System.out.println(list.addAll(3, List.of())); // false
    System.out.println(list); // [a, b, c]
}
{
    final var list = new ArrayList<>(src);
    System.out.println(list); // [a, b, c]

    //list.addAll(4, List.of("E")); // IndexOutOfBoundsException
}
final var src = List.of("a", "b", "c");
System.out.println(src);// [a, b, c]

final var list = new ArrayList<>(src);

System.out.println(list.addAll(3, Set.of("D1", "D2", "D3"))); // true
System.out.println(list); // [a, b, c, D3, D2, D1]

boolean addAll (Collection<? extends E> c)

将指定集合中的所有元素附加到此列表的末尾,按照指定集合的​​迭代器返回的顺序。 (机器翻译)

final var list = new ArrayList<String>();

System.out.println(list.addAll(List.of("a1"))); // true
System.out.println(list); // [a1]

System.out.println(list.addAll(List.of("b1", "b2"))); // true
System.out.println(list); // [a1, b1, b2]

System.out.println(list.addAll(List.of("c1", "c2", "c3"))); // true
System.out.println(list); // [a1, b1, b2, c1, c2, c3]

System.out.println(list.addAll(List.of())); // false
System.out.println(list); // [a1, b1, b2, c1, c2, c3]
final var list = new ArrayList<String>();
System.out.println(list); // []

System.out.println(list.addAll(Set.of("c1", "c2", "c3"))); // true
System.out.println(list); // [c3, c2, c1]

void addFirst (E element)

添加一个元素作为此集合的第一个元素(可选操作)。 (机器翻译)

final var list = new ArrayList<String>();

list.addFirst("aaa");
System.out.println(list); // [aaa]

list.addFirst("bbb");
System.out.println(list); // [bbb, aaa]

list.addFirst("ccc");
System.out.println(list); // [ccc, bbb, aaa]

void addLast (E element)

添加一个元素作为此集合的最后一个元素(可选操作)。 (机器翻译)

final var list = new ArrayList<String>();

list.addLast("aaa");
System.out.println(list); // [aaa]

list.addLast("bbb");
System.out.println(list); // [aaa, bbb]

list.addLast("ccc");
System.out.println(list); // [aaa, bbb, ccc]

void clear ()

从此列表中删除所有元素。 (机器翻译)

final var list = new ArrayList<String>();
list.add("a");
list.add("b");
list.add("c");

System.out.println(list); // [a, b, c]

list.clear();
System.out.println(list); // []

Object clone ()

返回此 ArrayList 实例的浅表副本。 (机器翻译)

final var list = new ArrayList<String>();
list.add("a");
list.add("b");
list.add("c");

System.out.println(list); // [a, b, c]

final var cloned = list.clone();
System.out.println(cloned); // [a, b, c]
System.out.println(cloned.getClass()); // class java.util.ArrayList

boolean contains (Object o)

如果此列表包含指定元素,则返回 true。 (机器翻译)

final var list = new ArrayList<String>();
Collections.addAll(list, "a", "b", "c");
System.out.println(list); // [a, b, c]

System.out.println(list.contains("")); // false
System.out.println(list.contains("a")); // true
System.out.println(list.contains("b")); // true
System.out.println(list.contains("c")); // true

System.out.println(list.contains("abc")); // false

void ensureCapacity (int minCapacity)

如有必要,增加此 ArrayList 实例的容量,以确保它至少可以容纳最小容量参数指定数量的元素。 (机器翻译)

final var list = new ArrayList<Integer>();
list.ensureCapacity(10000000);
System.out.println(list); // []

final var startTime = System.nanoTime();

for (int i = 0; i < 10000000; i++) {
    list.add(i);
}

final var endTime = System.nanoTime();

// 0.085877 sec.
System.out.printf("%f sec.%n", (endTime - startTime) / 1000000000.0);
final var list = new ArrayList<Integer>();
System.out.println(list); // []

final var startTime = System.nanoTime();

for (int i = 0; i < 10000000; i++) {
    list.add(i);
}

final var endTime = System.nanoTime();

// 0.174232 sec.
System.out.printf("%f sec.%n", (endTime - startTime) / 1000000000.0);

boolean equals (Object o)

将指定对象与此列表进行比较以确定其是否相等。 (机器翻译)

final var list = new ArrayList<String>();
Collections.addAll(list, "a", "b", "c");
System.out.println(list); // [a, b, c]

System.out.println(list.equals(List.of("a"))); // false
System.out.println(list.equals(List.of("a", "b"))); // false
System.out.println(list.equals(List.of("a", "b", "c"))); // true
System.out.println(list.equals(List.of("c", "b", "a"))); // false
final var list = new ArrayList<String>();
Collections.addAll(list, "a", "b", "c");
System.out.println(list); // [a, b, c]

final var arrayList = new ArrayList<>(list);
System.out.println(arrayList); // [a, b, c]
System.out.println(list.equals(arrayList)); // true

final var linkedList = new LinkedList<>(list);
System.out.println(linkedList); // [a, b, c]
System.out.println(list.equals(linkedList)); // true
final var list = new ArrayList<String>();
Collections.addAll(list, "a", "b", "c");
System.out.println(list); // [a, b, c]

final var set = new LinkedHashSet<>();
set.add("a");
set.add("b");
set.add("c");

System.out.println(set); // [a, b, c]
System.out.println(list.equals(set)); // false

void forEach (Consumer<? super E> action)

对 Iterable 的每个元素执行给定的操作,直到所有元素都已处理或该操作引发异常。 (机器翻译)

final var list = new ArrayList<String>();
Collections.addAll(list, "aaa", "bbb", "ccc");
System.out.println(list); // [aaa, bbb, ccc]

System.out.println("-- forEach --");
list.forEach(element -> {
    System.out.println(element);
});

// Result
// ↓
//-- forEach --
//aaa
//bbb
//ccc

E get (int index)

返回此列表中指定位置的元素。 (机器翻译)

final var list = new ArrayList<String>();
Collections.addAll(list, "a", "b", "c");
System.out.println(list); // [a, b, c]

//list.get(-1); // IndexOutOfBoundsException
System.out.println(list.get(0)); // a
System.out.println(list.get(1)); // b
System.out.println(list.get(2)); // c
//list.get(3); // IndexOutOfBoundsException
final var list = new ArrayList<Integer>();
Collections.addAll(list, 10, 20, 30, 40);
System.out.println(list); // [10, 20, 30, 40]

System.out.println(list.get(0)); // 10
System.out.println(list.get(1)); // 20
System.out.println(list.get(2)); // 30
System.out.println(list.get(3)); // 40

E getFirst ()

获取此集合的第一个元素。 (机器翻译)

final var list = new ArrayList<String>();

list.addLast("aaa");

System.out.println(list); // [aaa]
System.out.println(list.getFirst()); // aaa

list.addLast("bbb");

System.out.println(list); // [aaa, bbb]
System.out.println(list.getFirst()); // aaa

list.addLast("ccc");

System.out.println(list); // [aaa, bbb, ccc]
System.out.println(list.getFirst()); // aaa
final var list = new ArrayList<String>();
System.out.println(list); // []

try {
    final var ret = list.getFirst();
} catch (NoSuchElementException e) {
    System.out.println("NoSuchElementException!");
}

// Result
// ↓
//NoSuchElementException!

E getLast ()

获取此集合的最后一个元素。 (机器翻译)

final var list = new ArrayList<String>();

list.addLast("aaa");

System.out.println(list); // [aaa]
System.out.println(list.getLast()); // aaa

list.addLast("bbb");

System.out.println(list); // [aaa, bbb]
System.out.println(list.getLast()); // bbb

list.addLast("ccc");

System.out.println(list); // [aaa, bbb, ccc]
System.out.println(list.getLast()); // ccc
final var list = new ArrayList<String>();
System.out.println(list); // []

try {
    final var ret = list.getLast();
} catch (NoSuchElementException e) {
    System.out.println("NoSuchElementException!");
}

// Result
// ↓
//NoSuchElementException!

int hashCode ()

返回此列表的哈希码值。 (机器翻译)

final var list1 = new ArrayList<String>();
Collections.addAll(list1, "a", "b", "c");
System.out.println(list1.hashCode()); // 126145

final var list2 = new ArrayList<String>();
Collections.addAll(list2, "A", "B", "C");
System.out.println(list2.hashCode()); // 94369

final var list3 = new ArrayList<Integer>();
Collections.addAll(list3, 1, 2, 3);
System.out.println(list3.hashCode()); // 30817

int indexOf (Object o)

返回此列表中第一次出现的指定元素的索引,如果此列表不包含该元素,则返回 -1。 (机器翻译)

final var list = new ArrayList<String>();
Collections.addAll(list, "a", "b", "c", "a", "b", "c");
System.out.println(list); // [a, b, c, a, b, c]

System.out.println(list.indexOf("")); // -1
System.out.println(list.indexOf("a")); // 0
System.out.println(list.indexOf("b")); // 1
System.out.println(list.indexOf("c")); // 2
System.out.println(list.indexOf("d")); // -1
System.out.println(list.indexOf("abc")); // -1

boolean isEmpty ()

如果此列表不包含任何元素,则返回 true。 (机器翻译)

final var list = new ArrayList<String>();
list.add("a");
list.add("b");
list.add("c");

System.out.println(list); // [a, b, c]
System.out.println(list.isEmpty()); // false

list.clear();
System.out.println(list); // []
System.out.println(list.isEmpty()); // true

Iterator<E> iterator ()

按正确顺序返回此列表中元素的迭代器。 (机器翻译)

final var list = new ArrayList<String>();
Collections.addAll(list, "aaa", "bbb", "ccc");
System.out.println(list); // [aaa, bbb, ccc]

final var iterator = list.iterator();
iterator.forEachRemaining(System.out::println);

// Result
// ↓
//aaa
//bbb
//ccc

int lastIndexOf (Object o)

返回此列表中指定元素最后一次出现的索引,如果此列表不包含该元素,则返回 -1。 (机器翻译)

final var list = new ArrayList<String>();
Collections.addAll(list, "a", "b", "c", "a", "b", "c");
System.out.println(list); // [a, b, c, a, b, c]

System.out.println(list.lastIndexOf("")); // -1
System.out.println(list.lastIndexOf("a")); // 3
System.out.println(list.lastIndexOf("b")); // 4
System.out.println(list.lastIndexOf("c")); // 5
System.out.println(list.lastIndexOf("d")); // -1
System.out.println(list.lastIndexOf("abc")); // -1

ListIterator<E> listIterator ()

返回此列表中元素的列表迭代器(按正确的顺序)。 (机器翻译)

final var list = new ArrayList<String>();
Collections.addAll(list, "aaa", "bbb", "ccc");
System.out.println(list); // [aaa, bbb, ccc]

final var listIterator = list.listIterator();
listIterator.forEachRemaining(System.out::println);

// Result
// ↓
//aaa
//bbb
//ccc

ListIterator<E> listIterator (int index)

返回此列表中元素的列表迭代器(按正确顺序),从列表中的指定位置开始。 (机器翻译)

final var list = new ArrayList<String>();
Collections.addAll(list, "aaa", "bbb", "ccc");
System.out.println(list); // [aaa, bbb, ccc]

{
    final var ret = list.listIterator(0);
    ret.forEachRemaining(System.out::println);

    // Result
    // ↓
    //aaa
    //bbb
    //ccc
}
{
    final var ret = list.listIterator(1);
    ret.forEachRemaining(System.out::println);

    // Result
    // ↓
    //bbb
    //ccc
}
{
    final var ret = list.listIterator(2);
    ret.forEachRemaining(System.out::println);

    // Result
    // ↓
    //ccc
}

E remove (int index)

删除此列表中指定位置的元素。 (机器翻译)

final var src = List.of("a", "b", "c");
System.out.println(src); // [a, b, c]

{
    final var list = new ArrayList<>(src);
    System.out.println(list); // [a, b, c]

    System.out.println(list.remove(0)); // a
    System.out.println(list); // [b, c]
}
{
    final var list = new ArrayList<>(src);
    System.out.println(list); // [a, b, c]

    System.out.println(list.remove(1)); // b
    System.out.println(list); // [a, c]
}
{
    final var list = new ArrayList<>(src);
    System.out.println(list); // [a, b, c]

    System.out.println(list.remove(2)); // c
    System.out.println(list); // [a, b]
}
{
    final var list = new ArrayList<>(src);
    System.out.println(list); // [a, b, c]

    //list.remove(3); // IndexOutOfBoundsException
}

boolean remove (Object o)

如果存在,则从此列表中删除指定元素的第一次出现。 (机器翻译)

final var src = List.of("a", "b", "a", "b", "A", "B");
System.out.println(src); // [a, b, a, b, A, B]

{
    final var list = new ArrayList<>(src);
    System.out.println(list); // [a, b, a, b, A, B]

    System.out.println(list.remove("")); // false
    System.out.println(list); // [a, b, a, b, A, B]
}
{
    final var list = new ArrayList<>(src);
    System.out.println(list); // [a, b, a, b, A, B]

    System.out.println(list.remove("a")); // true
    System.out.println(list); // [b, a, b, A, B]
}
{
    final var list = new ArrayList<>(src);
    System.out.println(list); // [a, b, a, b, A, B]

    System.out.println(list.remove("b")); // true
    System.out.println(list); // [a, a, b, A, B]
}
{
    final var list = new ArrayList<>(src);
    System.out.println(list); // [a, b, a, b, A, B]

    System.out.println(list.remove("A")); // true
    System.out.println(list); // [a, b, a, b, B]
}
{
    final var list = new ArrayList<>(src);
    System.out.println(list); // [a, b, a, b, A, B]

    System.out.println(list.remove("B")); // true
    System.out.println(list); // [a, b, a, b, A]
}
{
    final var list = new ArrayList<>(src);
    System.out.println(list); // [a, b, a, b, A, B]

    System.out.println(list.remove("C")); // false
    System.out.println(list); // [a, b, a, b, A, B]
}

boolean removeAll (Collection<?> c)

从此列表中删除指定集合中包含的所有元素。 (机器翻译)

final var src = List.of("a", "b", "a", "b", "A", "B");
System.out.println(src); // [a, b, a, b, A, B]

{
    final var list = new ArrayList<>(src);
    System.out.println(list); // [a, b, a, b, A, B]

    System.out.println(list.removeAll(List.<String>of())); // false
    System.out.println(list); // [a, b, a, b, A, B]
}
{
    final var list = new ArrayList<>(src);
    System.out.println(list); // [a, b, a, b, A, B]

    System.out.println(list.removeAll(List.of("a"))); // true
    System.out.println(list); // [b, b, A, B]
}
{
    final var list = new ArrayList<>(src);
    System.out.println(list); // [a, b, a, b, A, B]

    System.out.println(list.removeAll(List.of("a", "b"))); // true
    System.out.println(list); // [A, B]
}
{
    final var list = new ArrayList<>(src);
    System.out.println(list); // [a, b, a, b, A, B]

    System.out.println(list.removeAll(List.of("b", "a"))); // true
    System.out.println(list); // [A, B]
}
{
    final var list = new ArrayList<>(src);
    System.out.println(list); // [a, b, a, b, A, B]

    System.out.println(list.removeAll(List.of("A"))); // true
    System.out.println(list); // [a, b, a, b, B]
}
{
    final var list = new ArrayList<>(src);
    System.out.println(list); // [a, b, a, b, A, B]

    System.out.println(list.removeAll(List.of("X", "Y", "Z"))); // false
    System.out.println(list); // [a, b, a, b, A, B]
}
{
    final var list = new ArrayList<>(src);
    System.out.println(list); // [a, b, a, b, A, B]

    System.out.println(list.removeAll(List.of("A", "X", "Y", "Z"))); // true
    System.out.println(list); // [a, b, a, b, B]
}

E removeFirst ()

删除并返回此集合的第一个元素(可选操作)。 (机器翻译)

final var list = new ArrayList<String>();

list.addLast("aaa");
list.addLast("bbb");
list.addLast("ccc");

System.out.println(list); // [aaa, bbb, ccc]

System.out.println(list.removeFirst()); // aaa
System.out.println(list); // [bbb, ccc]

System.out.println(list.removeFirst()); // bbb
System.out.println(list); // [ccc]

System.out.println(list.removeFirst()); // ccc
System.out.println(list); // []
final var list = new ArrayList<String>();
System.out.println(list); // []

try {
    final var ret = list.removeFirst();
} catch (NoSuchElementException e) {
    System.out.println("NoSuchElementException!");
}

// Result
// ↓
//NoSuchElementException!

boolean removeIf (Predicate<? super E> filter)

删除此集合中满足给定谓词的所有元素(可选操作)。 (机器翻译)

final var list = new ArrayList<String>();
list.add("aaa");
list.add("BBB");
list.add("ccc");
list.add("DDD");

System.out.println(list); // [aaa, BBB, ccc, DDD]

final var ret = list.removeIf(s -> {
    return s.equals(s.toUpperCase());
});

System.out.println(ret); // true
System.out.println(list); // [aaa, ccc]
final var list = new ArrayList<String>();
list.add("aaa");
list.add("bbb");

System.out.println(list); // [aaa, bbb]

final var ret = list.removeIf(s -> s.equals(s.toUpperCase()));

System.out.println(ret); // false
System.out.println(list); // [aaa, bbb]

E removeLast ()

删除并返回此集合的最后一个元素(可选操作)。 (机器翻译)

final var list = new ArrayList<String>();

list.addLast("aaa");
list.addLast("bbb");
list.addLast("ccc");

System.out.println(list); // [aaa, bbb, ccc]

System.out.println(list.removeLast()); // ccc
System.out.println(list); // [aaa, bbb]

System.out.println(list.removeLast()); // bbb
System.out.println(list); // [aaa]

System.out.println(list.removeLast()); // aaa
System.out.println(list); // []
final var list = new ArrayList<String>();
System.out.println(list); // []

try {
    final var ret = list.removeLast();
} catch (NoSuchElementException e) {
    System.out.println("NoSuchElementException!");
}

// Result
// ↓
//NoSuchElementException!

protected void removeRange (int fromIndex, int toIndex)

从此列表中删除索引位于 fromIndex(包括)和 toIndex(不包括)之间的所有元素。 (机器翻译)

@SuppressWarnings("serial")
class MyList extends ArrayList<String> {

    MyList(Collection<String> c) {
        super(c);
    }

    @Override
    public void removeRange(int fromIndex, int toIndex) {
        super.removeRange(fromIndex, toIndex);
    }
}

final var src = List.of("a", "b", "c");
System.out.println(src); // [a, b, c]

{
    final var list = new MyList(src);
    System.out.println(list); // [a, b, c]

    list.removeRange(0, 1);
    System.out.println(list); // [b, c]
}
{
    final var list = new MyList(src);
    System.out.println(list); // [a, b, c]

    list.removeRange(0, 2);
    System.out.println(list); // [c]
}
{
    final var list = new MyList(src);
    System.out.println(list); // [a, b, c]

    list.removeRange(0, 3);
    System.out.println(list); // []
}

{
    final var list = new MyList(src);
    System.out.println(list); // [a, b, c]

    list.removeRange(1, 3);
    System.out.println(list); // [a]
}
{
    final var list = new MyList(src);
    System.out.println(list); // [a, b, c]

    list.removeRange(2, 3);
    System.out.println(list); // [a, b]
}
{
    final var list = new MyList(src);
    System.out.println(list); // [a, b, c]

    list.removeRange(3, 3);
    System.out.println(list); // [a, b, c]
}

boolean retainAll (Collection<?> c)

仅保留此列表中包含在指定集合中的元素。 (机器翻译)

final var src = List.of("a", "b", "a", "b", "A", "B");
System.out.println(src); // [a, b, a, b, A, B]

{
    final var list = new ArrayList<>(src);
    System.out.println(list); // [a, b, a, b, A, B]

    System.out.println(list.retainAll(List.<String>of())); // true
    System.out.println(list); // []
}
{
    final var list = new ArrayList<>(src);
    System.out.println(list); // [a, b, a, b, A, B]

    System.out.println(list.retainAll(List.of("a", "b"))); // true
    System.out.println(list); // [a, b, a, b]
}
{
    final var list = new ArrayList<>(src);
    System.out.println(list); // [a, b, a, b, A, B]

    System.out.println(list.retainAll(List.of("b", "a"))); // true
    System.out.println(list); // [a, b, a, b]
}
{
    final var list = new ArrayList<>(src);
    System.out.println(list); // [a, b, a, b, A, B]

    System.out.println(list.retainAll(List.of("A"))); // true
    System.out.println(list); // [A]
}
{
    final var list = new ArrayList<>(src);
    System.out.println(list); // [a, b, a, b, A, B]

    System.out.println(list.retainAll(List.of("X", "Y", "Z"))); // true
    System.out.println(list); // []
}
{
    final var list = new ArrayList<>(src);
    System.out.println(list); // [a, b, a, b, A, B]

    System.out.println(list.retainAll(List.of("A", "X", "Y", "Z"))); // true
    System.out.println(list); // [A]
}
{
    final var list = new ArrayList<>(src);
    System.out.println(list); // [a, b, a, b, A, B]

    System.out.println(list.retainAll(List.of("a", "b", "A", "B"))); // false
    System.out.println(list); // [a, b, a, b, A, B]
}

E set (int index, E element)

用指定元素替换此列表中指定位置的元素。 (机器翻译)

final var src = List.of("a", "b", "c");
System.out.println(src); // [a, b, c]

{
    final var list = new ArrayList<>(src);
    System.out.println(list); // [a, b, c]

    System.out.println(list.set(0, "A")); // a
    System.out.println(list); // [A, b, c]
}
{
    final var list = new ArrayList<>(src);
    System.out.println(list); // [a, b, c]

    System.out.println(list.set(1, "B")); // b
    System.out.println(list); // [a, B, c]
}
{
    final var list = new ArrayList<>(src);
    System.out.println(list); // [a, b, c]

    System.out.println(list.set(2, "C")); // c
    System.out.println(list); // [a, b, C]
}
{
    final var list = new ArrayList<>(src);
    System.out.println(list); // [a, b, c]

    //list.set(3, "D"); // IndexOutOfBoundsException
}

int size ()

返回此列表中元素的数量。 (机器翻译)

final var list = new ArrayList<String>();
System.out.println(list); // []
System.out.println(list.size()); // 0

list.add("a");

System.out.println(list); // [a]
System.out.println(list.size()); // 1

list.add("b");
list.add("c");
list.add("d");

System.out.println(list); // [a, b, c, d]
System.out.println(list.size()); // 4

Spliterator<E> spliterator ()

针对此列表中的元素创建一个后期绑定和快速失败的 Spliterator。 (机器翻译)

final var list = new ArrayList<String>();
Collections.addAll(list, "aaa", "bbb", "ccc");
System.out.println(list); // [aaa, bbb, ccc]

final var spliterator = list.spliterator();
spliterator.forEachRemaining(System.out::println);

// Result
// ↓
//aaa
//bbb
//ccc

List<E> subList (int fromIndex, int toIndex)

返回此列表在指定的 fromIndex(包括)和 toIndex(不包括)之间的部分的视图。 (机器翻译)

final var list = new ArrayList<String>();
list.add("a");
list.add("b");
list.add("c");
list.add("d");

System.out.println(list); // [a, b, c, d]

System.out.println(list.subList(0, 0)); // []
System.out.println(list.subList(0, 1)); // [a]
System.out.println(list.subList(0, 2)); // [a, b]
System.out.println(list.subList(0, 3)); // [a, b, c]
System.out.println(list.subList(0, 4)); // [a, b, c, d]
//list.subList(0, 5); // IndexOutOfBoundsException

final var subList = list.subList(1, 3);
System.out.println(subList); // [b, c]
System.out.println(list); // [a, b, c, d]

subList.set(0, "X");
System.out.println(subList); // [X, c]
System.out.println(list); // [a, X, c, d]

subList.add("Y");
System.out.println(subList); // [X, c, Y]
System.out.println(list); // [a, X, c, Y, d]

subList.remove("c");
System.out.println(subList); // [X, Y]
System.out.println(list); // [a, X, Y, d]

Object[] toArray ()

返回一个按正确顺序包含此列表中所有元素的数组(从第一个元素到最后一个元素)。 (机器翻译)

final var list = new ArrayList<String>();
Collections.addAll(list, "a", "b", "c");
System.out.println(list); // [a, b, c]

final Object[] array = list.toArray();
System.out.println(Arrays.toString(array)); // [a, b, c]

<T> T[] toArray (T[] a)

返回一个按正确顺序(从第一个元素到最后一个元素)包含此列表中所有元素的数组;返回数组的运行时类型是指定数组的类型。 (机器翻译)

final var list = new ArrayList<String>();
Collections.addAll(list, "a", "b", "c");
System.out.println(list); // [a, b, c]

final String[] array = list.toArray(new String[0]);
System.out.println(Arrays.toString(array)); // [a, b, c]
final var list = new ArrayList<String>();
Collections.addAll(list, "a", "b", "c");
System.out.println(list); // [a, b, c]

{
    final String[] array = new String[3];
    System.out.println(Arrays.toString(array)); // [null, null, null]

    final var ret = list.toArray(array);
    System.out.println(Arrays.toString(array)); // [a, b, c]
    System.out.println(Arrays.toString(ret)); // [a, b, c]
}
{
    final String[] array = new String[5];
    System.out.println(Arrays.toString(array)); // [null, null, null, null, null]

    final var ret = list.toArray(array);
    System.out.println(Arrays.toString(array)); // [a, b, c, null, null]
    System.out.println(Arrays.toString(ret)); // [a, b, c, null, null]
}
{
    final String[] array = new String[1];
    System.out.println(Arrays.toString(array)); // [null]

    final var ret = list.toArray(array);
    System.out.println(Arrays.toString(array)); // [null]
    System.out.println(Arrays.toString(ret)); // [a, b, c]
}

void trimToSize ()

将此 ArrayList 实例的容量修剪为列表的当前大小。 (机器翻译)

final var list = new ArrayList<String>(10000000);
Collections.addAll(list, "aaa", "bbb", "ccc");
System.out.println(list); // [aaa, bbb, ccc]

final var runtime = Runtime.getRuntime();

runtime.gc();

final var before = runtime.totalMemory() - runtime.freeMemory();
System.out.println(before); // 45640832

list.trimToSize();

runtime.gc();

final var after = runtime.totalMemory() - runtime.freeMemory();
System.out.println(after); // 4742320

final var diff = before - after;
System.out.println(diff); // 40898512

Methods declared in AbstractList

equals, hashCode

请参阅下面的链接。

Methods declared in AbstractCollection

containsAll, toString

请参阅下面的链接。

Methods declared in Collection

parallelStream, stream, toArray

请参阅下面的链接。

Methods declared in List

containsAll, replaceAll, reversed, sort

请参阅下面的链接。


相关文章

To top of page