Queue中方法詳解
阿新 • • 發佈:2019-01-07
概念理解
有界佇列:即佇列中的元素個數有限制
無界佇列:即佇列中的元素個數無限制
1.向佇列中新增元素
add():向有界佇列中新增元素的時候,如果元素的數量超過臨界值,會丟擲異常java.lang.IllegalStateException: Queue full
測試程式碼
public static void main(String[] args) { ArrayBlockingQueue<Object> queue = new ArrayBlockingQueue<>(2); queue.add("aa"); queue.add("bb"); queue.add("cc"); queue.add("dd"); }
offer():向有界佇列中新增元素的時候,如果元素的數量超過臨界值,會新增失敗,但不會丟擲異常。
測試程式碼
public static void main(String[] args) {
ArrayBlockingQueue<Object> queue = new ArrayBlockingQueue<>(2);
queue.offer("aa");
queue.offer("bb");
queue.offer("cc");
queue.offer("dd");
}
2.獲取佇列中的頭部元素並刪除
remove():當佇列中沒有可獲取的元素時,會丟擲異常 java.util.NoSuchElementException
測試程式碼
public static void main(String[] args) {
ArrayBlockingQueue<String> queue = new ArrayBlockingQueue<String>(2);
String result = queue.remove();
System.out.println(result);
System.out.println(queue.size());
}
poll():當佇列中沒有可獲取的元素時,會返回null
測試程式碼
public static void main(String[] args) { ArrayBlockingQueue<String> queue = new ArrayBlockingQueue<String>(2); String result = queue.poll(); System.out.println(result); System.out.println(queue.size()); }
3.獲取佇列中的頭部元素但不刪除
element():當佇列中沒有可獲取的元素時,會丟擲異常 java.util.NoSuchElementException
測試程式碼
public static void main(String[] args) {
ArrayBlockingQueue<String> queue = new ArrayBlockingQueue<String>(2);
String result = queue.element();
System.out.println(result);
System.out.println(queue.size());
}
peek():當佇列中沒有可獲取的元素時,會返回null
測試程式碼
public static void main(String[] args) {
ArrayBlockingQueue<String> queue = new ArrayBlockingQueue<String>(2);
String result = queue.peek();
System.out.println(result);
System.out.println(queue.size());
}