Java : Queue 示例

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

注解 :

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

简介

用于在处理之前保存元素的集合。除了基本的集合操作外,队列还提供额外的插入、提取和检查操作。 (机器翻译)

Class diagram

final Queue<String> queue = new ArrayDeque<>();

queue.add("aaa");
queue.add("bbb");
queue.add("ccc");

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

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

System.out.println(queue.remove()); // bbb
System.out.println(queue); // [ccc]

System.out.println(queue.remove()); // ccc
System.out.println(queue); // []

Methods

boolean add (E e)

如果可以立即执行此操作而不违反容量限制,则将指定元素插入此队列,成功时返回 true,如果当前没有可用空间,则抛出 IllegalStateException。 (机器翻译)

// capacity = 3
final Queue<String> queue = new ArrayBlockingQueue<>(3);
System.out.println(queue); // []

System.out.println(queue.add("aaa")); // true
System.out.println(queue); // [aaa]

System.out.println(queue.add("bbb")); // true
System.out.println(queue); // [aaa, bbb]

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

try {
    queue.add("ddd");
} catch (IllegalStateException e) {
    System.out.println("IllegalStateException! : " + e.getMessage());
}

// Result
// ↓
//IllegalStateException! : Queue full

E element ()

检索但不删除此队列的头部。 (机器翻译)

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

queue.add("aaa");
queue.add("bbb");
queue.add("ccc");

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

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

System.out.println(queue.element()); // bbb
System.out.println(queue); // [bbb, ccc]

System.out.println(queue.remove()); // bbb
System.out.println(queue); // [ccc]

System.out.println(queue.element()); // ccc
System.out.println(queue); // [ccc]

System.out.println(queue.remove()); // ccc
System.out.println(queue); // []

try {
    queue.element();
} catch (NoSuchElementException e) {
    System.out.println("NoSuchElementException!");
}

// Result
// ↓
//NoSuchElementException!

boolean offer (E e)

如果可以立即执行此操作而不违反容量限制,则将指定元素插入此队列。 (机器翻译)

// capacity = 3
final Queue<String> queue = new ArrayBlockingQueue<>(3);
System.out.println(queue); // []

System.out.println(queue.offer("aaa")); // true
System.out.println(queue); // [aaa]

System.out.println(queue.offer("bbb")); // true
System.out.println(queue); // [aaa, bbb]

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

System.out.println(queue.offer("ddd")); // false
System.out.println(queue); // [aaa, bbb, ccc]

E peek ()

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

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

queue.add("aaa");
queue.add("bbb");
queue.add("ccc");

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

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

System.out.println(queue.peek()); // bbb
System.out.println(queue); // [bbb, ccc]

System.out.println(queue.poll()); // bbb
System.out.println(queue); // [ccc]

System.out.println(queue.peek()); // ccc
System.out.println(queue); // [ccc]

System.out.println(queue.poll()); // ccc
System.out.println(queue); // []

System.out.println(queue.peek()); // null
System.out.println(queue); // []

E poll ()

检索并移除此队列的头,如果此队列为空则返回 null。 (机器翻译)

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

queue.add("aaa");
queue.add("bbb");
queue.add("ccc");

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

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

System.out.println(queue.poll()); // bbb
System.out.println(queue); // [ccc]

System.out.println(queue.poll()); // ccc
System.out.println(queue); // []

System.out.println(queue.poll()); // null
System.out.println(queue); // []

E remove ()

检索并移除此队列的头部。 (机器翻译)

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

queue.add("aaa");
queue.add("bbb");
queue.add("ccc");

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

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

System.out.println(queue.remove()); // bbb
System.out.println(queue); // [ccc]

System.out.println(queue.remove()); // ccc
System.out.println(queue); // []

try {
    queue.remove();
} catch (NoSuchElementException e) {
    System.out.println("NoSuchElementException!");
}

// Result
// ↓
//NoSuchElementException!

Methods declared in Collection

addAll, clear, contains, containsAll, equals, hashCode, isEmpty, iterator, parallelStream, remove, removeAll, removeIf, retainAll, size, spliterator, stream, toArray, toArray, toArray

请参阅下面的链接。

Methods declared in Iterable

forEach

请参阅下面的链接。


相关文章

To top of page