1. 程式人生 > >Queue中方法詳解

Queue中方法詳解

概念理解

有界佇列:即佇列中的元素個數有限制

無界佇列:即佇列中的元素個數無限制

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());
	}