Java : ArrayDeque 示例

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

注解 :

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

简介

Deque 接口的可调整大小数组实现。数组双端队列没有容量限制;它们会根据需要增大以支持使用。 (机器翻译)

Class diagram

final var deque = new ArrayDeque<String>();

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

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

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

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

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

deque.addLast("xxx");
deque.addLast("yyy");
deque.addLast("zzz");

System.out.println(deque); // [xxx, yyy, zzz]

System.out.println(deque.removeLast()); // zzz
System.out.println(deque); // [xxx, yyy]

System.out.println(deque.removeLast()); // yyy
System.out.println(deque); // [xxx]

System.out.println(deque.removeLast()); // xxx
System.out.println(deque); // []

Constructors

ArrayDeque ()

构造一个空数组双端队列,其初始容量足以容纳 16 个元素。 (机器翻译)

final var deque = new ArrayDeque<String>();
System.out.println(deque); // []
System.out.println(deque.isEmpty()); // true

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

System.out.println(deque); // [aaa, bbb, ccc]
System.out.println(deque.size()); // 3

ArrayDeque (int numElements)

构造一个空数组双端队列,其初始容量足以容纳指定数量的元素。 (机器翻译)

final var deque = new ArrayDeque<String>(10000000);
System.out.println(deque); // []

final var startTime = System.nanoTime();

for (int i = 0; i < 1000000; i++) {
    deque.addLast(String.valueOf(i));
}

final var endTime = System.nanoTime();

// 0.022946 sec.
System.out.printf("%f sec.%n", (endTime - startTime) / 1000000000.0);
final var deque = new ArrayDeque<String>(1);
System.out.println(deque); // []

final var startTime = System.nanoTime();

for (int i = 0; i < 1000000; i++) {
    deque.addLast(String.valueOf(i));
}

final var endTime = System.nanoTime();

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

ArrayDeque (Collection<? extends E> c)

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

final var c = List.of("a", "b", "c");

final var deque = new ArrayDeque<>(c);
System.out.println(deque); // [a, b, c]
System.out.println(deque.size()); // 3

Methods

boolean add (E e)

将指定元素插入此双端队列的末尾。 (机器翻译)

This method is equivalent to addLast(E e).

boolean addAll (Collection<? extends E> c)

将指定集合中的所有元素添加到此双端队列的末尾,就像对每个元素调用 addLast(E) 一样,按照集合迭代器返回的顺序添加它们。 (机器翻译)

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

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

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

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

void addFirst (E e)

将指定元素插入此双端队列的前面。 (机器翻译)

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

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

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

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

void addLast (E e)

将指定元素插入此双端队列的末尾。 (机器翻译)

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

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

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

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

void clear ()

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

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

deque.addLast("a");
System.out.println(deque); // [a]

deque.addLast("b");
System.out.println(deque); // [a, b]

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

ArrayDeque<E> clone ()

返回此双端队列的副本。 (机器翻译)

final var deque = new ArrayDeque<String>();
deque.addLast("a");
deque.addLast("b");
deque.addLast("c");

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

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

boolean contains (Object o)

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

final var deque = new ArrayDeque<>(List.of("aaa", "bbb", "ccc"));
System.out.println(deque); // [aaa, bbb, ccc]

System.out.println(deque.contains("aaa")); // true
System.out.println(deque.contains("bbb")); // true
System.out.println(deque.contains("XXX")); // false

Iterator<E> descendingIterator ()

返回以相反顺序遍历此双端队列中元素的迭代器。 (机器翻译)

final var deque = new ArrayDeque<>(List.of("aaa", "bbb", "ccc"));
System.out.println(deque); // [aaa, bbb, ccc]

final var iterator = deque.descendingIterator();

System.out.println("-- forEachRemaining --");
iterator.forEachRemaining(System.out::println);

// Result
// ↓
//-- forEachRemaining --
//ccc
//bbb
//aaa

E element ()

检索此双端队列所表示的队列的头部,但不移除该队列。 (机器翻译)

This method is equivalent to getFirst().

void forEach (Consumer<? super E> action)

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

final var deque = new ArrayDeque<>(List.of("aaa", "bbb", "ccc"));
System.out.println(deque); // [aaa, bbb, ccc]

System.out.println("-- forEach --");
deque.forEach(value -> {
    System.out.println("value = " + value);
});

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

E getFirst ()

检索此双端队列的第一个元素,但不删除它。 (机器翻译)

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

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

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

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

System.out.println(deque.getFirst()); // bbb
System.out.println(deque); // [bbb, ccc]

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

System.out.println(deque.getFirst()); // ccc
System.out.println(deque); // [ccc]

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

try {
    deque.getFirst();
} catch (NoSuchElementException e) {
    System.out.println(e);
}

// Result
// ↓
//java.util.NoSuchElementException

E getLast ()

检索此双端队列的最后一个元素,但不删除它。 (机器翻译)

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

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

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

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

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

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

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

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

try {
    deque.getLast();
} catch (NoSuchElementException e) {
    System.out.println(e);
}

// Result
// ↓
//java.util.NoSuchElementException

boolean isEmpty ()

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

final var deque = new ArrayDeque<String>();
deque.addLast("a");
deque.addLast("b");
deque.addLast("c");

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

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

Iterator<E> iterator ()

返回此双端队列中元素的迭代器。 (机器翻译)

final var deque = new ArrayDeque<>(List.of("aaa", "bbb", "ccc"));
System.out.println(deque); // [aaa, bbb, ccc]

final var iterator = deque.iterator();

System.out.println("-- forEachRemaining --");
iterator.forEachRemaining(value -> {
    System.out.println("value = " + value);
});

// Result
// ↓
//-- forEachRemaining --
//value = aaa
//value = bbb
//value = ccc

boolean offer (E e)

将指定元素插入此双端队列的末尾。 (机器翻译)

This method is equivalent to offerLast(E e).

boolean offerFirst (E e)

将指定元素插入此双端队列的前面。 (机器翻译)

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

System.out.println(deque.offerFirst("aaa")); // true
System.out.println(deque); // [aaa]

System.out.println(deque.offerFirst("bbb")); // true
System.out.println(deque); // [bbb, aaa]

System.out.println(deque.offerFirst("ccc")); // true
System.out.println(deque); // [ccc, bbb, aaa]

boolean offerLast (E e)

将指定元素插入此双端队列的末尾。 (机器翻译)

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

System.out.println(deque.offerLast("aaa")); // true
System.out.println(deque); // [aaa]

System.out.println(deque.offerLast("bbb")); // true
System.out.println(deque); // [aaa, bbb]

System.out.println(deque.offerLast("ccc")); // true
System.out.println(deque); // [aaa, bbb, ccc]

E peek ()

检索此双端队列所表示的队列的头部,但不移除该队列;如果此双端队列为空,则返回 null。 (机器翻译)

This method is equivalent to peekFirst().

E peekFirst ()

检索此双端队列的第一个元素,但不删除该元素;如果此双端队列为空,则返回 null。 (机器翻译)

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

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

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

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

System.out.println(deque.peekFirst()); // bbb
System.out.println(deque); // [bbb, ccc]

System.out.println(deque.pollFirst()); // bbb
System.out.println(deque); // [ccc]

System.out.println(deque.peekFirst()); // ccc
System.out.println(deque); // [ccc]

System.out.println(deque.pollFirst()); // ccc
System.out.println(deque); // []

System.out.println(deque.peekFirst()); // null
System.out.println(deque); // []

E peekLast ()

检索此双端队列的最后一个元素,但不删除该元素;如果此双端队列为空,则返回 null。 (机器翻译)

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

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

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

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

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

System.out.println(deque.pollLast()); // bbb
System.out.println(deque); // [aaa]

System.out.println(deque.peekLast()); // aaa
System.out.println(deque); // [aaa]

System.out.println(deque.pollLast()); // aaa
System.out.println(deque); // []

System.out.println(deque.peekLast()); // null
System.out.println(deque); // []

E poll ()

检索并移除此双端队列所表示的队列的头部(换句话说,此双端队列的第一个元素),如果此双端队列为空,则返回 null。 (机器翻译)

This method is equivalent to pollFirst().

E pollFirst ()

检索并移除此双端队列的第一个元素,如果此双端队列为空,则返回 null。 (机器翻译)

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

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

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

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

System.out.println(deque.pollFirst()); // bbb
System.out.println(deque); // [ccc]

System.out.println(deque.pollFirst()); // ccc
System.out.println(deque); // []

System.out.println(deque.pollFirst()); // null
System.out.println(deque); // []

E pollLast ()

检索并移除此双端队列的最后一个元素,如果此双端队列为空,则返回 null。 (机器翻译)

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

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

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

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

System.out.println(deque.pollLast()); // bbb
System.out.println(deque); // [aaa]

System.out.println(deque.pollLast()); // aaa
System.out.println(deque); // []

System.out.println(deque.pollLast()); // null
System.out.println(deque); // []

E pop ()

从此双端队列所表示的堆栈中弹出一个元素。 (机器翻译)

This method is equivalent to removeFirst().

void push (E e)

将一个元素推送到此双端队列所表示的堆栈上。 (机器翻译)

This method is equivalent to addFirst(E e).

E remove ()

检索并移除此双端队列所表示的队列的头。 (机器翻译)

This method is equivalent to removeFirst().

boolean remove (Object o)

从此双端队列中删除指定元素的单个实例。 (机器翻译)

This method is equivalent to removeFirstOccurrence(Object o).

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 deque = new ArrayDeque<>(src);
    System.out.println(deque); // [a, b, a, b, A, B]

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

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

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

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

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

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

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

E removeFirst ()

检索并删除此双端队列的第一个元素。 (机器翻译)

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

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

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

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

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

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

try {
    deque.removeFirst();
} catch (NoSuchElementException e) {
    System.out.println(e);
}

// Result
// ↓
//java.util.NoSuchElementException

boolean removeFirstOccurrence (Object o)

移除此双端队列中第一次出现的指定元素(从头到尾遍历双端队列时)。 (机器翻译)

final var deque = new ArrayDeque<>(List.of("aaa", "BBB", "aaa", "BBB", "ccc"));
System.out.println(deque); // [aaa, BBB, aaa, BBB, ccc]

System.out.println(deque.removeFirstOccurrence("aaa")); // true
System.out.println(deque); // [BBB, aaa, BBB, ccc]

System.out.println(deque.removeFirstOccurrence("BBB")); // true
System.out.println(deque); // [aaa, BBB, ccc]

System.out.println(deque.removeFirstOccurrence("BBB")); // true
System.out.println(deque); // [aaa, ccc]

System.out.println(deque.removeFirstOccurrence("XXX")); // false
System.out.println(deque); // [aaa, ccc]

boolean removeIf (Predicate<? super E> filter)

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

final var deque = new ArrayDeque<String>();
deque.addLast("aaa");
deque.addLast("BBB");
deque.addLast("ccc");
deque.addLast("DDD");

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

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

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

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

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

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

E removeLast ()

检索并删除此双端队列的最后一个元素。 (机器翻译)

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

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

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

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

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

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

try {
    deque.removeLast();
} catch (NoSuchElementException e) {
    System.out.println(e);
}

// Result
// ↓
//java.util.NoSuchElementException

boolean removeLastOccurrence (Object o)

移除此双端队列中最后一次出现的指定元素(从头到尾遍历双端队列时)。 (机器翻译)

final var deque = new ArrayDeque<>(List.of("aaa", "BBB", "aaa", "BBB", "ccc"));
System.out.println(deque); // [aaa, BBB, aaa, BBB, ccc]

System.out.println(deque.removeLastOccurrence("BBB")); // true
System.out.println(deque); // [aaa, BBB, aaa, ccc]

System.out.println(deque.removeLastOccurrence("aaa")); // true
System.out.println(deque); // [aaa, BBB, ccc]

System.out.println(deque.removeLastOccurrence("XXX")); // false
System.out.println(deque); // [aaa, BBB, ccc]

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 deque = new ArrayDeque<>(src);
    System.out.println(deque); // [a, b, a, b, A, B]

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

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

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

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

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

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

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

int size ()

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

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

deque.addLast("aaa");
System.out.println(deque); // [aaa]
System.out.println(deque.size()); // 1

deque.addLast("bbb");
System.out.println(deque); // [aaa, bbb]
System.out.println(deque.size()); // 2

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

Spliterator<E> spliterator ()

针对该双端队列中的元素创建一个后期绑定且快速失败的 Spliterator。 (机器翻译)

final var deque = new ArrayDeque<>(List.of("aaa", "bbb", "ccc"));
System.out.println(deque); // [aaa, bbb, ccc]

final var spliterator = deque.spliterator();

System.out.println("-- forEachRemaining --");
spliterator.forEachRemaining(value -> {
    System.out.println("value = " + value);
});

// Result
// ↓
//-- forEachRemaining --
//value = aaa
//value = bbb
//value = ccc

Object[] toArray ()

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

final var deque = new ArrayDeque<>(List.of("a", "b", "c"));
System.out.println(deque); // [a, b, c]

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

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

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

final var deque = new ArrayDeque<>(List.of("a", "b", "c"));
System.out.println(deque); // [a, b, c]

final String[] array = deque.toArray(new String[0]);
System.out.println(Arrays.toString(array)); // [a, b, c]
final var deque = new ArrayDeque<>(List.of("a", "b", "c"));
System.out.println(deque); // [a, b, c]

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

    final var ret = deque.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 = deque.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 = deque.toArray(array);
    System.out.println(Arrays.toString(array)); // [null]
    System.out.println(Arrays.toString(ret)); // [a, b, c]
}

Methods declared in AbstractCollection

containsAll, toString

请参阅下面的链接。

Methods declared in Collection

containsAll, equals, hashCode, parallelStream, stream, toArray

请参阅下面的链接。

Methods declared in Deque

reversed

请参阅下面的链接。


相关文章

To top of page