概念理解
有界队列:即队列中的元素个数有限制
无界队列:即队列中的元素个数无限制
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());
}