手机端网站如何做,网站维护怎么样,做国学类网站合法吗,google seo 优化系列文章目录
1.SpringBoot整合RabbitMQ并实现消息发送与接收 2. 解析JSON格式参数 修改对象的key 3. VUE整合Echarts实现简单的数据可视化 4. List#xff1c;HashMap#xff1c;String,String#xff1e;#xff1e;实现自定义字符串排序#xff08;key排序、Val…系列文章目录
1.SpringBoot整合RabbitMQ并实现消息发送与接收 2. 解析JSON格式参数 修改对象的key 3. VUE整合Echarts实现简单的数据可视化 4. ListHashMapString,String实现自定义字符串排序key排序、Value排序 5. 使用AOP切面实现日志记录功能 更多该系列文章可以看我主页哦 文章目录 系列文章目录前言一、poll()方法使用及特点1.1 使用1.2 特点1.3 注意点 二、remove()使用及特点2.1 使用2.2 特点2.3 注意点 总结 前言 在 Java 中Queue 是一个接口表示一种先进先出FIFO的数据结构。它继承自 Collection 接口定义了一些用于操作队列的方法。Queue 接口提供了一种在队尾插入元素在队首移除元素的方式。 从数据结构的角度来看Queue 可以被看作是一个线性表具有两个端点队尾和队首。新元素被添加到队尾而老元素则从队首被移除。这样保证了先进队列的元素会先被移出实现了 FIFO 的特性。 除了继承自 Collection 接口的方法外Queue 接口还定义了几个重要的方法包括
add(element)将指定的元素插入到队尾如果成功则返回 true如果队列已满则抛出异常。offer(element)将指定的元素插入到队尾如果成功则返回 true如果队列已满则返回 false。remove()移除并返回队首的元素如果队列为空则抛出异常。poll()移除并返回队首的元素如果队列为空则返回 null。element()返回队首的元素但不移除它如果队列为空则抛出异常。peek()返回队首的元素但不移除它如果队列为空则返回 null。
这里我们通过 remove() 方法和 poll() 方法使用代码去更加直观的理解用法。帮助大家记忆他们的区别。 一、poll()方法使用及特点
1.1 使用
具体来说下述代码的执行步骤如下
创建一个 Queue 实例 queue使用 LinkedList 类作为其具体的实现。使用 offer() 方法向队列中添加三个元素 “A”、“B” 和 “C”。使用 poll() 方法逐个取出并打印队列中的元素。首先打印出 “A”然后 “B”最后 “C”。在进一步的尝试取出元素时由于队列已经为空所以会返回 null并打印出 null。
QueueString queue new LinkedList();// 向队列中添加元素
queue.offer(A);
queue.offer(B);
queue.offer(C);// 使用 poll() 方法
System.out.println(Using poll():);
while (!queue.isEmpty()) {System.out.println(queue.poll());
}
System.out.println(queue.poll());1.2 特点
如果队列为空则返回 null。否则返回队首的元素并将其从队列中移除。 效果图如下
1.3 注意点
在该示例中我们在使用 poll() 方法之前先判断队列是否为空以确保在取出元素之前不会发生异常。这是一个良好的编程习惯可以避免在空队列上调用 poll() 方法时出现异常。 代码如下
if(!queue.isEmpty()){System.out.println(queue.poll());
}二、remove()使用及特点
2.1 使用
具体代码执行步骤如下
创建一个 Queue 实例 queue使用 LinkedList 类作为其具体的实现。使用 offer() 方法向队列中添加三个元素 “X”、“Y” 和 “Z”。使用 remove() 方法逐个取出并打印队列中的元素。首先打印出 “X”然后 “Y”最后 “Z”。在进一步的尝试取出元素时由于队列已经为空所以会抛出 NoSuchElementException 异常因为在空队列上调用 remove() 方法会出现异常。 QueueString queue new LinkedList();
// 再次向队列中添加元素queue.offer(X);queue.offer(Y);queue.offer(Z);// 使用 remove() 方法System.out.println(Using remove():);while (!queue.isEmpty()) {System.out.println(queue.remove());}queue.remove();2.2 特点
由于队列已经为空所以会抛出 **NoSuchElementException** 异常因为在空队列上调用 remove() 方法会出现异常。 效果图
2.3 注意点
在开发时如果使用remove去移出队列的元素需注意空队列的情况最好使用try_catch包裹代码 如下
try {queue.remove();
} catch (Exception e) {System.out.println(队列为空不能使用.remove()移出元素);
}总结 当我们使用 poll() 方法时如果队列为空返回 null 的设计是为了让程序员能够更容易地处理空队列的情况避免了抛出异常需要额外的异常处理代码而使用 remove() 方法时如果队列为空抛出 NoSuchElementException 异常则是因为队列为空可能代表了某种意外情况需要引起程序员的注意并进行相应的处理例如程序员可能没有预料到队列为空的情况或者队列为空时并不应该执行特定的操作。 因此poll() 方法返回 null 是一种更加灵活、容错性更强的设计可以让程序员更容易地处理空队列的情况而 remove() 方法抛出 NoSuchElementException 则是为了提醒程序员在使用该方法时要注意队列是否为空以防止可能的错误行为。 总的来说Java 设计者在设计这两个方法时考虑了程序员的使用习惯和便利性使得程序员在处理队列为空的情况时能够更加方便、安全地编写代码。